F5 已發布修補程式,修復了一項關鍵的 nginx 漏洞,該漏洞允許遠端未經驗證的攻擊者透過特製的 HTTP 請求,在 worker 程序中觸發堆積緩衝區溢位。CVE-2026-42533 已於 7 月 15 日在 nginx 1.30.4(穩定版)與 1.31.3(主線版) 以及 NGINX Plus 37.0.3.1 中修補,使用較舊版本的使用者應立即升級。

觸發此漏洞可能導致 worker 程序崩潰或重新啟動,造成阻斷服務;若 ASLR 被停用或可被繞過,F5 表示此漏洞也可能允許遠端程式碼執行。

此溢位發生在 nginx 的 script engine 中,該引擎負責在請求處理時根據指令組合字串。此問題僅在特定組態下出現:一個基於 regex 的 map,其輸出變數在字串運算式中被引用,且該運算式位於先前 regex 比對所擷取的 capture 之後。

在這種模式下,引擎的兩階段評估機制會失效。第一階段計算結果所需的位元組數並分配足夠的緩衝區;第二階段則寫入資料。兩個階段都讀取相同的共享 capture 狀態,而在兩個階段之間評估 map 的 regex 會覆寫該狀態。

因此,測量階段會根據原始 capture(例如來自 location 比對的 $1)來決定緩衝區大小,而寫入階段則會從攻擊者控制的不同 capture 填入資料。由於緩衝區太小,溢位長度與內容都直接來自請求。

Cybersecurity

此漏洞並非影響所有 nginx 伺服器;暴露與否取決於組態而非版本。F5 的安全公告指出,此漏洞影響 NGINX Ingress Controller、Gateway Fabric、App Protect WAF 以及 Instance Manager,以及核心伺服器與 NGINX Plus,但截至發稿時,F5 尚未列出這四項產品的修補版本。

F5 將此漏洞的 CVSS v4 評分為 9.2,舊版 CVSS v3.1 則為 8.1,並將攻擊複雜度評為高。從 0.9.6 到 1.31.2 的所有 nginx 版本均受影響,該範圍可追溯至 2011 年當時 map 開始支援 regex。

CVE-2026-42533 由超過十二位研究人員獨立回報給 F5;廠商感謝他們「獨立將此問題告知我們」。nginx 的更新日誌將此修補歸功於 Winfunc Research 的 Mufeed VH 以及維護者 Maxim Dounin。

其中一位回報者 Stan Shaw(以 cyberstan 名義發文)發布了一篇比官方公告更詳細的分析文章。F5 將程式碼執行的條件限定在 ASLR 被停用或可被繞過,而 Shaw 認為此漏洞本身即提供繞過方法。他告訴 The Hacker News,capture 覆寫也會反向發生:當被覆寫的 capture 小於原始值時,過大的緩衝區會回傳未初始化的堆積資料,在預設的 Ubuntu 24.04 環境中,單一未經驗證的 GET 請求即可取得攻擊所需的位址。

「閱讀 F5 公告的讀者可能合理地認為此漏洞在預設系統上僅能造成 DoS。但事實並非如此,」Shaw 表示。此說法比 F5 更為強烈,他表示在自己的測試中成功率為 10/10,但他目前保留利用細節與概念驗證碼,因此尚未有獨立驗證。

修補方式是升級至 nginx 1.30.4 或 1.31.3,或 NGINX Plus 37.0.3.1。若無法立即修補,F5 的臨時緩解措施是將受影響的 regex map 改用命名 capture,Shaw 表示此方法可封閉主要攻擊路徑,並涵蓋大多數組態。

但他告訴 The Hacker News,此緩解措施仍留下一條較窄的攻擊路徑:若 map 定義了與 location regex 相同的命名群組,則可透過第二條程式碼路徑觸發相同的溢位,他已透過 AddressSanitizer 確認,而 F5 的公告並未提及。「升級至 1.30.4 / 1.31.3 是唯一的完整修補,」他說。

需要檢查的組態特徵相當狹窄:一個基於 regex 的 map,其變數出現在字串運算式中,與來自先前 regex 的編號 capture($1$2)同時出現,且 capture 寫在 map 變數之前。

Cybersecurity

Shaw 自行開發的掃描器可自動檢查組態、追蹤 include,並僅標記可被利用的順序;它不會執行攻擊,但作為回報者的工具,並非廠商產品。

這是近兩個月內 nginx 運算式評估程式碼中披露的第三個堆積溢位漏洞,之前分別是 5 月的 Rift(CVE-2026-42945)以及數日後 rewrite 模組的重疊 capture 漏洞(CVE-2026-9256)。

這三個漏洞屬於同一類型:nginx 的兩階段 script engine 在第一階段決定緩衝區大小,第二階段寫入資料,每次寫入都超出先前測量的大小。觸發條件各不相同:Rift 是過時旗標,rewrite 漏洞是重疊 capture,而此漏洞則是 capture 狀態被覆寫。研究人員指出,共同弱點在於兩階段設計信任自身測量結果。

截至 7 月 20 日,CVE-2026-42533 尚未列入 CISA 的已知被利用漏洞清單,也尚未出現公開的利用程式碼。Shaw 表示將在修補發布 21 天後公布自己的概念驗證碼,而 Rift 的案例值得警惕:其利用程式碼在數日內公開,隨後即出現主動攻擊。因此應在此漏洞的利用程式碼出現前完成升級。

The Hacker News 詢問 F5,將 map 改用命名 capture 是否能完全修補 CVE-2026-42533(考量 Shaw 所記載的變體),以及受影響的下游產品何時會發布修補版本。F5 截至發稿前尚未回應。

喜歡這篇文章嗎?請在 Google NewsTwitterLinkedIn 追蹤我們,以閱讀更多獨家內容。