資安雷達 2026 年 7 月 27 日

2026-07-27 — Linux tc 子系統 UAF、svxlink RCE 批次修補、etcd TLS 握手 goroutine 洩漏三則資安速報

primary=https://github.com/torvalds/linux/commit/e28aedab9488343924d227b5a896faed67ce84d5 primary=https://www.openwall.com/lists/oss-security/2026/07/26/1 primary=https://github.com/advisories/GHSA-6vch-q96h-7gc3

Linux 核心 RED qdisc 分片重組競態:tcf_qevent_handle 释放後使用漏洞(CVE-2026-64530)

Linux Kernel Git(stable tree)修補提交 · 2026-07-26

Linux 核心網路流量控制(traffic control)子系統中的 tcf_qevent_handle() 函式存在一個 use-after-free 缺陷,追蹤編號為 CVE-2026-64530,由 NVD 於 2026 年 7 月 26 日公告,問題根源可追溯至 kernel.org。缺陷出現在 RED qdisc 搭配連線追蹤(conntrack)分片重組(defragmentation)使用的場景。上游已針對 5.15 至 6.8 以上的多條穩定分支釋出回溯修補。

漏洞機制

tc 的分類函式 tcf_classify() 可能回傳 TC_ACT_CONSUMED,代表 skb 已被某個動作(例如 act_ct 的分片重組引擎)接管保留,呼叫端不應再碰觸該緩衝區——語意上與 TC_ACT_STOLEN 類似,但專門用於「框架已知緩衝區去向」的情境。qevent 是 RED 等 qdisc 上的擴充掛勾點,讓 tc 動作能在佇列處理的特定時機(如 mark、early_drop)介入執行,而 tcf_qevent_handle() 正是負責呼叫掛在 qevent 上的過濾器並把處理結果的 skb 交還給 qdisc 繼續處理。

問題在於當 out-of-order 分片交由 conntrack 重組引擎持有時,tcf_classify() 會回傳 TC_ACT_CONSUMED,但 tcf_qevent_handle() 沒有正確識別這個回傳值,反而把 skb 當作分類成功一樣原封傳回呼叫端。RED qdisc 之後繼續對這個實際上已不屬於自己、且可能已被釋放的 skb 進行操作,形成 use-after-free。此缺陷由 Zero Day Initiative 回報,並由 Victor Nogueira 協助驗證。

受影響版本

  • Linux 5.15.148 – 5.15.211
  • Linux 6.1.75 – 6.1.177
  • Linux 6.6.14 – 6.6.144
  • Linux 6.7.2 及以上、6.8+ 分支

此缺陷源自更早之前修補分片重組 skb 洩漏與當機問題的提交(3f14b37,"net/sched: act_ct: fix skb leak and crash on ooo frags"),該提交引入的處理路徑未涵蓋 qevent 呼叫點,因此凡是包含該提交的穩定核心版本都受影響。NVD 尚未對此 CVE 給出正式 CVSS 分數。

修補與緩解

修補方式是在 net/sched/cls_api.c 中補上對 TC_ACT_CONSUMED 的處理分支,讓函式在偵測到該回傳值時直接回報 skb 已被竊取,不再往下傳遞:

case TC_ACT_CONSUMED:
    *ret = __NET_XMIT_STOLEN;
    return NULL;

此寫法與 ingress/egress 快速路徑處理 TC_ACT_CONSUMED 的方式一致,確保 qevent 路徑不會再對已被其他動作接管的 skb 進行後續存取。以下為各穩定分支對應的回溯提交:

穩定分支回溯提交 hash(前 10 碼)
6.12140c2f3f2
6.6447d493034
5.155ed3d6f859
6.6(另一版本)a8a02897f2
6.1(另一版本)e1270e69dc
6.8+ / mainline 回溯e28aedab94
6.7f42e8134a3

原始來源:Linux kernel commit e28aedab94NVD CVE-2026-64530


oss-security mailing list(Mark Rose 公告)· 2026-07-26

開源業餘無線電中繼與 EchoLink 閘道軟體 svxlink 的開發者 Mark Rose 於 2026 年 7 月 26 日在 oss-security 郵件論壇公告一批安全修補,並發布 26.05.1 版本。受影響版本回溯達約 13 年,公告同時發送給 Debian、Gentoo、Red Hat、SUSE、Ubuntu、FreeBSD 等散布維護清單。其中最嚴重的一項是 reflector 客戶端的 TCL 指令注入漏洞,追蹤編號 GHSA-pc2g-2p95-4cr5

漏洞機制

svxlink 在 ReflectorLogic.cppReflectorV2Logic.cppModuleEchoLink.cpp 等元件處理 reflector 伺服器傳來的「發話者」(talker)callsign 時,會把伺服器提供、未經過濾的字串直接串接進交由 Tcl_Eval 執行的 TCL 事件字串中。惡意或遭入侵的 reflector 伺服器可在 callsign 欄位夾帶中括號、大括號、$、分號等 TCL 特殊字元,使其在字串被求值時被解讀為指令替換,而非單純文字。公告中給出的示範 payload 為 X[exec touch /tmp/pwned],觸發後即以 svxlink 行程權限執行任意 shell 操作。

此漏洞的 CVSS 3.1 基礎分數在預設設定下為 8.1(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H),若使用者啟用較寬鬆的 ACCEPT_CALLSIGN 設定,攻擊複雜度降低使分數上升至 9.8,對應 oss-security 公告中提到的最高風險評分。CWE 分類為 CWE-95(動態求值程式碼的指令注入)。

受影響版本

  • svxlink 24.02 至 26.05(TCL 注入,GHSA-pc2g-2p95-4cr5):受影響
  • 修補版本:26.05.0.99.9(併入 26.05.1 正式版)

同一批公告中,Mark Rose 一併修補了另外數項獨立問題,涵蓋 svxreflector 的釋放後使用寫入、NetRx 音訊長度未驗證造成越界讀取、Async HTTP 伺服器無限制累積請求標頭等不同嚴重程度的缺陷

GHSA問題CVSS
GHSA-6wgq-wg3w-jgvxsvxreflector 懸空 Json::Value 參照導致 UAF 寫入8.8
GHSA-mh75-5pr3-qv2pNetRx MsgAudio 長度未驗證,越界讀取8.2
GHSA-pc2g-2p95-4cr5reflector 客戶端 TCL 指令注入8.1(寬鬆設定下 9.8)
GHSA-r2gm-p682-3mpmsvxreflector 重入刪除 client 導致 UAF8.1

修補與緩解

官方建議的修補方式是在把 callsign 併入 TCL 事件字串前,以白名單方式僅允許英數字、連字號與斜線通過,或改用 Tcl_MergeTcl_EvalObjv 以清單形式建構指令,避免字串拼接帶來的求值風險。所有使用者應升級至 26.05.1;由於受影響版本回溯達 13 年,各發行版維護者需另行評估回溯修補(backport)到既有套件版本的必要性。

原始來源:oss-security 公告全文GHSA-pc2g-2p95-4cr5


etcd TLS 監聽器無上限產生握手 goroutine,遠端可耗盡叢集記憶體(GHSA-6vch-q96h-7gc3)

GitHub Security Advisory Database · 2026-07-24

Kubernetes 控制平面常用的分散式鍵值存放與協調服務 etcd,其 TLS 監聽器的 tlsListener.acceptLoop 存在阻斷服務缺陷,編號 GHSA-6vch-q96h-7gc3,由 VMware by Broadcom 回報,於 2026 年 7 月 24 日公開。CVSS v4 評分為 8.7(AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H),CWE 分類為 CWE-770(資源配置未加限制)。攻擊者只需能連上 etcd 的 TLS 監聽埠,即可在無需任何權限或使用者互動的情況下觸發。

漏洞機制

etcd 的 accept loop 會為每一個進來的 TCP 連線啟動一個 Go goroutine(輕量執行緒)來執行 TLS 握手。攻擊者只要開啟大量 TCP 連線,並且刻意不送出 ClientHello 訊息,對應的握手 goroutine 就會無限期阻塞在等待客戶端資料的狀態。由於程式碼未替握手連線設定讀取逾時(deadline),這些 goroutine 不會自行逾時退出,而是持續佔用記憶體與排程資源。

隨著惡意連線數量增加,未回收的握手 goroutine 會不斷累積,最終使 etcd 節點記憶體耗盡,導致服務可用性下降甚至整個叢集不穩定。由於 etcd 常作為 Kubernetes API server 的後端資料存放,此類阻斷服務會連帶影響仰賴該叢集的所有控制平面功能。此問題只影響可用性(Availability: High),機密性與完整性不受影響。

受影響版本

  • etcd ≥ 3.7.0-alpha.0,< 3.7.1
  • etcd ≥ 3.6.0,< 3.6.14
  • etcd < 3.5.33

三條主要維護分支(3.5、3.6、3.7)皆受影響,代表幾乎所有目前仍在使用中的 etcd 版本都需要檢查是否已套用對應修補。

修補與緩解

官方已釋出 etcd 3.7.1、3.6.14 與 3.5.33 修正此問題,修補提交(2e07efce9745,經由 pull request #22130 合併)為握手連線加上明確的讀取逾時,讓長時間不完成 TLS 握手的連線會被主動中斷並回收對應的 goroutine,而非無限期等待。在完成升級前,公告建議的緩解措施是透過防火牆規則或網路政策限制能夠連上 etcd 用戶端(gRPC)埠的主機來源,降低暴露面。

原始來源:GHSA-6vch-q96h-7gc3etcd-io 官方安全公告


End of article
0
Would love your thoughts, please comment.x
()
x