Node.js 內建的 Brotli 函式庫出現名為 HTTP2Shell 的漏洞,可讓攻擊者毀損記憶體,並存取敏感資料。
HTTP2Shell 的編號為 CVE-2026-111497,又稱為 Broccoli2Shell 或 Node2Shell,影響 Node.js 內建的 C 語言函式庫 Brotli 1.0.3 到 1.0.9 、 1.1.0 及 1.2.0 版。 Brotli 是由 Google 開原並維護的無損資料壓縮技術,可縮小檔案以利傳輸。這項漏洞之所以有多種名稱,是因為不同廠商分別在 Brotli 解碼器中發現它,影響範圍遍及廣大的軟體生態系。
CVE-2026-111497/HTTP2Shell 是緩衝區溢位漏洞,源於 Brotli 在解壓縮惡意壓縮資料流時,可被濫用造成記憶體越界寫入 (Out-of-bounds Write) 或記憶體損壞,進而引發遠端程式碼執行 (RCE) 、阻斷服務 (DoS) 或資訊外洩。攻擊者只要傳送經過壓縮的請求,或讓應用程式擷取特定 URL 並取得經過壓縮的 HTTP 回應,就能帶入惡意資料發動攻擊。
影響廣泛
這項漏洞之所以被稱為 HTTP2Shell,是因為它影響 HTTP 用戶端和伺服器。不過它不只和 HTTP/2 有關,也影響其他會解壓縮 Brotli 檔案的應用程式。資安廠商研究人員最早揭露的受影響軟體是 Node.js,因此一開始稱為 Node2Shell,後來才發現 Bun 、 Envoy Proxy 、 PyPI 等其他軟體也受到影響。雖然上游 Brotli 的修補程式已在 2 月提交至程式碼庫,但要等各維護單位上週陸續發布緊急安全更新,下游使用者的問題才能解決。此外,微軟也緊急發布.NET 8 、 9 、 10 及 11 Release Candidate 3 的更新,呼籲開發人員盡速更新。
雖然 HTTP2Shell 的概念驗證攻擊程式已經出現在 GitHub 上,但目前還沒有該漏洞遭惡意濫用的通報。不過由於風險嚴重,還無法安裝更新版本的管理員,應先以防火牆封鎖外部送入的 Brotli 壓縮請求,或在完成修補前關閉 Brotli 解碼功能。
這是兩週來網路軟體出現的第二項重大漏洞。上週研究人員揭露由 CVE-2026-109618 及 CVE-2026-109619 合稱的 PHP2Shell 漏洞,攻擊者不需登入就能遠端執行程式碼,CVSS 評分為 9.2 分。美國 CISA 也在 10 月 21 日將 PHP2Shell 列入已知遭利用漏洞 (KEV) 目錄,並發布重大公告,要求聯邦機構立即更新。日本首相高市早苗呼籲業者當晚完成更新。另據媒體報導,荷蘭、芬蘭等多個歐洲國家的政府機關、學校、醫療院所,以及多家遊戲公司與主機商都已緊急停機。 Palo Alto Networks Unit 42 研究人員也偵測到,北韓駭客疑似已開始利用 PHP2Shell 漏洞掃描全球網路。
(綜合外電報導)
