近期 F5 發布了針對 NGINX 開源版本的安全性更新,修復了兩個評分高達 9.2 分的嚴重漏洞。這兩項漏洞最危險的地方在於它們都可能導致遠端程式碼執行,也就是 RCE (Remote Code Execution)。對於維運工程師來說,RCE 意味著攻擊者可以在不需要任何帳號密碼的情況下,直接在你的伺服器上執行任意指令,從而完全接管系統。
首先我們來看 CVE-2026-42530,這是一個發生在 HTTP/3 QUIC 模組中的 Use-After-Free 漏洞。Use-After-Free 是一種典型的記憶體管理錯誤,簡單來說,就是程式在釋放了某塊記憶體後,卻仍然嘗試去讀取或寫入該位置。攻擊者可以透過精心構造的 HTTP/3 會話,強迫 NGINX 重新開啟一個 QPACK 編碼串流,進而觸發這個錯誤。
如果伺服器沒有開啟 ASLR (Address Space Layout Randomization,位址空間配置隨機化),或者攻擊者找到了繞過 ASLR 的方法,他們就能利用這個記憶體錯誤來注入並執行惡意指令。ASLR 是現代作業系統的一種防禦機制,透過隨機化記憶體位址來增加攻擊者預測目標位置的難度,但它並非萬能。
接著是 CVE-2026-42055,這是一個發生在 HTTP/2 與 gRPC 代理模組中的堆疊緩衝區溢位漏洞 (Heap-based Buffer Overflow)。緩衝區溢位是指程式寫入資料量超過了預先分配的記憶體空間,導致多餘的資料覆蓋到相鄰的記憶體區域。
這個漏洞的觸發條件較為具體,必須同時滿足以下三點:第一,配置了 proxy_http_version 2 或使用了 grpc_pass 來代理 HTTP/2 流量;第二,將 ignore_invalid_headers 設為 off(即不忽略無效標頭);第三,large_client_header_buffers 的設定值大於 2 MB。當這些條件滿足時,遠端未經認證的攻擊者即可透過發送特殊請求來觸發溢位,同樣能達到 RCE 的效果。
面對這兩項漏洞,最根本的解決辦法是將 NGINX 及其相關元件(如 Ingress Controller 或 Gateway Fabric)更新至官方修復版本。如果你目前無法立即重新啟動服務進行更新,可以採取以下臨時緩解措施。
針對 HTTP/3 的漏洞,最直接的方法是暫時停用 HTTP/3 功能。對於 HTTP/2 的漏洞,則建議將 ignore_invalid_headers 設為預設的 on,或者將 large_client_header_buffers 的大小調低至 2 MB 以下。
這類漏洞再次提醒我們,在調整 Web Server 的效能參數(如加大標頭緩衝區)或開啟新協議(如 HTTP/3)時,必須意識到這可能會擴大攻擊面。特別是對於暴露在公網上的入口閘道,任何微小的配置變更都可能成為安全漏洞的觸發點。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。