資安雷達 2026 年 10 月 2 日

2026-10-02 — Apache httpd 2.4.69 修補 mod_http2 use-after-free

primary=https://www.openwall.com/lists/oss-security/2026/10/01/19 primary=https://httpd.apache.org/security/vulnerabilities_24.html primary=https://downloads.apache.org/httpd/CHANGES_2.4

Apache httpd 2.4.69 修補 mod_http2 共用緩衝區重入造成的 use-after-free

oss-security / Apache HTTP Server Project · 2026-10-01

mod_http2 在同一個 HTTP/2 session 內共用的暫存 brigade session->bbtmp,被重入(re-entrancy)使用時會留下已釋放的指標,進而造成 use-after-free 與 wild write。這個問題從 2.4.0 一路存在到 2.4.68,2.4.69 於 2026-10-01 修補,編號 CVE-2026-57941。

Apache 自己把嚴重度標為 moderate。但它是記憶體破壞類漏洞,而且出現在多數啟用 HTTP/2 的 httpd 都會載入的模組裡,值得今天就排進升級。

漏洞機制

公告的描述只有一句:mod_http2 的 use-after-free,起因是共用的 session->bbtmp 重入,標題另外提到 wild write。bucket brigade 是 httpd 傳遞資料的鏈結串列;bbtmp 從名稱看是 session 層級的暫存 brigade。

從標題可以合理推論:同一個 session 上有兩條程式路徑共用這一個暫存物件,內層呼叫清理或重用它之後,外層仍拿著舊的指標繼續寫入。但公告與 CHANGES_2.4 都沒有公開呼叫路徑、觸發條件或利用方式,修補內容在 svn 的 r1938665,該 revision 頁面目前需要認證才能開啟,本文未能核對 diff。

因此「是否能被遠端未認證觸發」「能否做到程式碼執行」,公告未說明,本文不下結論。

受影響版本

  • 受影響:Apache HTTP Server 2.4.0 至 2.4.68
  • 修補:2.4.69,修補 revision 為 r1938665
  • 回報者:Lucian Nitescu、Simon Kappel、Gianluca Danesin(Altervista)
日期事件
2026-06-15回報給 Apache 安全團隊
2026-10-01r1938665 修補,2.4.69 發布,公告送出

從回報到修補相隔約三個半月;這段期間是否有公開利用,公告未提。

影響範圍

先確認自己有沒有走到 mod_http2。沒載入該模組、也沒啟用 h2 的站台,不會碰到這段程式碼;這是依模組名稱做的判斷,公告本身沒有列出前提條件,保守起見仍建議直接升級。可以用下面的指令確認:

# 模組有沒有載入
apachectl -M | grep http2
# 有沒有啟用 h2
grep -R "Protocols" /etc/apache2 /etc/httpd 2>/dev/null
apachectl -v   # 版本需 >= 2.4.69

要特別留意的是發行版與容器映像檔:很多環境不是自己編譯 httpd,而是跟著發行版套件或 httpd 官方映像更新。版本字串停在 2.4.68 以前,不代表一定沒修;發行版常把修補 backport 進舊版本號,要以發行版自己的安全公告為準。本文未查證各發行版的修補狀態。

另外,Synology 這類把 Apache 包進產品的環境,也要看廠商何時更新內含的 httpd,不能只看上游發布日期。

同一版本的其他修補

2.4.69 並不是只修這一個洞。CHANGES_2.4 的 2.4.69 區段列出 20 條 SECURITY 項目,涵蓋 mod_dav_fs、mod_auth_digest、mod_proxy_uwsgi、mod_vhost_alias、mod_ssl 等模組。其中有幾條值得一併檢視:

  • CVE-2026-56154:mod_rewrite 的 use-after-free(%{LA-U:HTTP:...}),公告標為 low
  • CVE-2026-56449:mod_proxy_html 處理惡意回應內容時的 out-of-bounds write,標為 low
  • CVE-2026-42356:CGI 目錄中對非 CGI 檔案做內部轉址時的 limited RCE

也就是說,升級的理由不只是 mod_http2:只要你的設定用到上述任一模組,同一次升級就一併處理了。反過來說,若因為變更管理無法立刻升級,就得逐條評估每個 CVE 是否碰到自己載入的模組,成本不低。

修補與緩解

官方的修補方式是升級到 2.4.69。公告沒有提供不升級也能生效的設定緩解,所以能確認的唯一修補路徑就是換版本。

如果暫時無法升級,一個可行的折衷是關閉 HTTP/2,讓連線退回 HTTP/1.1:

# before
Protocols h2 http/1.1
# after(暫時緩解,公告未將此列為官方緩解)
Protocols http/1.1

這是依漏洞位於 mod_http2 所做的推論,並非公告提供的做法;代價是失去多工與標頭壓縮,反向代理後方若有依賴 h2 的客戶端也要先確認相容性。

修補 diff 與逐條細節以 Apache 官方漏洞頁為準。

原始來源:oss-security 公告、httpd 2.4 vulnerabilities、CHANGES_2.4


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