Skip to main content
Return to TrendAI™ 資安部落格
Vulnerabilities and exploits

Node2Shell(CVE-2026-111497)重大漏洞解析:Brotli 漏洞影響哪些系統?企業該如何修補?

NetworkWebExploits & Zero-Days

Key Takeaways

  • Brotli 解壓縮函式庫存在重大漏洞 CVE-2026-111497,CVSS 4.0 評分高達 9.2(Critical): 攻擊者可透過特製的壓縮資料造成記憶體毀損。受影響版本包括 Brotli 1.0.3 至 1.0.9、1.1.0 及 1.2.0。目前 Brotli、Node.js、Bun、Envoy、Istio、.NET 及 Python 相關套件均已釋出修補版本。
  • 攻擊可能從伺服器端或用戶端發生: 攻擊者可利用特製的 Brotli 壓縮資料,讓尚未修補漏洞的伺服器或用戶端在解壓縮時觸發漏洞,造成記憶體毀損,甚至可能執行惡意程式碼。
  • 漏洞利用程式碼已公開,研究人員證實可在測試環境中成功執行惡意程式碼: 10 月 22 日,漏洞概念驗證(PoC)程式碼開始在網路上流傳。資安研究團隊 Imperva(10 月 22 日)及 ELLIO(10 月 25 日)分別在不同的處理器架構(arm64 與 x86-64)下,成功利用官方 Node.js 24.22.0 版本的漏洞執行程式碼。測試證實,攻擊者可能利用 HTTP 傳送或接收的 Brotli 壓縮資料觸發漏洞,但攻擊並非每次都能成功。
  • CISA 已將漏洞列入已知遭利用漏洞清單(KEV): 美國網路安全暨基礎設施安全局(CISA)於 10 月 27 日將此漏洞列入 KEV 清單,代表已有證據顯示駭客正在利用這項漏洞發動攻擊。資安研究機構 ELLIO 也在 10 月 26 日發現一次疑似攻擊,但經測試後,尚無法確認攻擊是否成功。截至 10 月 28 日,仍未有公開證實的實際入侵成功案例。
  • Brotli 可能隱藏在企業不易察覺的系統與軟體中: Brotli 經常內建於各種應用程式、伺服器環境及容器映像檔中,企業不一定知道哪些系統正在使用它。因此,除了更新已知受影響的軟體,也必須全面盤點,避免遺漏潛在的漏洞風險。
  • 無法立即修補時,應先降低攻擊風險: 在完成漏洞修補前,建議暫時停用系統對外部不明來源資料的 Brotli 解壓縮功能,避免攻擊者利用惡意壓縮資料觸發漏洞。
  • 趨勢科技 TrendAI™ 提供相關防護措施: 客戶可參閱知識庫文件 KA-0024830,了解目前可採取的防護措施。詳細資訊請見本文「趨勢科技 TrendAI™ 如何協助企業防護」章節。

事件經過:Node2Shell 漏洞如何被發現與利用?

2026 年 10 月 21 日,Node.js 發布資安更新,修補其內建 Brotli 解碼器中的一項越界寫入漏洞(Out-of-Bounds Write)。這項漏洞可能導致程式將資料寫入超出預定範圍的記憶體位置,造成系統當機,甚至讓攻擊者執行惡意程式碼。

根據 Node.js 安全公告,當 Brotli 解壓縮程序遇到格式異常的壓縮資料時,系統未能正確辨識錯誤,反而誤以為需要更多資料,因而持續將攻擊者提供的內容寫入記憶體緩衝區,最終超出緩衝區容量,造成越界寫入。

Google 的 CVE 紀錄指出,這項漏洞可能造成記憶體毀損,進而導致敏感記憶體資訊外洩、程序當機,甚至可能讓攻擊者執行任意程式碼。

不同機構對漏洞的風險評級如下:

  • Google:CVSS 4.0 評分 9.2,重大(Critical)。
  • Node.js:高風險(High)。
  • Microsoft:針對 .NET 評為 CVSS 3.1 的 8.1 分。

此漏洞被歸類為 CWE-787(越界寫入),CVSS 4.0 向量為 AV:N/AC:L/AT:P/PR:N/UI:N。這表示攻擊可能透過網路發動,不需要登入權限,也不需要使用者操作;但前提是目標系統確實會執行 Brotli 解壓縮。

Google 於 10 月 21 日發布 Brotli 1.0.10、1.1.1 與 1.2.1 修補版本。Envoy 和 Istio 則已在 10 月稍早釋出包含修補內容的更新,但當時並未明確指出這項漏洞;Bun 隨後也發布修補版本。

OpenAI 表示,這項漏洞是由旗下 Codex Security 資安研究團隊發現,並已通知 Brotli 開發維護團隊及其他使用 Brotli 的軟體開發團隊進行修補。根據 Node.js 安全公告,漏洞發現者為 OpenAI Codex Security 團隊的 Khai Tran 與 Sylvie Mayer。

研究人員已成功在官方 Node.js 版本執行程式碼

10 月 22 日公開的 PoC 程式碼,其作者最初僅在刻意降低安全防護的測試版本中成功執行程式碼。然而,後續研究證實,漏洞具有更具體的實際利用風險。

10 月 22 日,Imperva Red Team 表示,研究團隊在未使用除錯工具、也未對官方程式加入特殊監控機制的情況下,成功利用 Node.js 24.22.0 官方 Linux arm64 版本的漏洞執行程式碼。

研究人員透過兩種方式成功重現攻擊:

  1. HTTP 請求: 利用 Express 5(body-parser 2.x)處理並解壓縮惡意 Brotli 壓縮資料時觸發漏洞。
  2. HTTP 回應: 利用 Node.js 內建的 fetch() 功能接收並解壓縮伺服器傳回的惡意 Brotli 壓縮資料時觸發漏洞。

這些攻擊需要多次嘗試才能成功,且測試結果僅適用於 Imperva 驗證過的環境,並未涵蓋所有 Node.js 版本或應用程式。已修補的 Node.js 24.22.1 會拒絕相同的惡意輸入。

10 月 25 日,ELLIO 亦表示,已在 x86-64 架構的官方、未修改 Node.js 24.22.0 預設環境中成功執行程式碼,測試範圍包括:

  • 使用 zlib 解壓縮的 node:http 伺服器。
  • 官方 node:24.22.0-slim 容器映像檔。
  • Express 5.3.0。
  • Koa 3。

不過,攻擊能否成功,仍取決於 Node.js 的版本及執行環境。研究人員使用相同的攻擊設定,分別對 Node.js 22.23.3 與 26.12.0 進行 10,000 次測試,均未成功。大多數測試僅造成程式異常當機,未能進一步取得執行系統命令的權限。

10 月 26 日,資安研究機構 ELLIO 發現一起疑似利用此漏洞發動攻擊的事件。攻擊來自單一 IP 位址,目標是執行 Node.js 24.22.0 的 x86-64 系統,並透過 HTTP 請求傳送約 23 MB 的 Brotli 壓縮資料。攻擊者使用已公開的漏洞驗證程式碼(PoC),並加入自行設計的後續攻擊程式碼。不過,ELLIO 經測試後認為,新增的攻擊程式碼可能無法成功執行。

10 月 27 日,美國網路安全暨基礎設施安全局(CISA)將 CVE-2026-111497 列入已知遭利用漏洞清單(KEV),並要求美國聯邦政府相關機關於 11 月 10 日前完成修補。

截至 2026 年 10 月 28 日,雖然研究人員已在測試環境中成功利用此漏洞,但趨勢科技 TrendAI™ 尚未從自身資安監控資料中發現經確認的成功入侵案例,公開資訊也尚未證實有實際受害者遭成功入侵。

這項漏洞也被稱為 Node2Shell 或 HTTP2Shell,兩者指的都是同一項漏洞 CVE-2026-111497。

哪些系統受到 Node2Shell 漏洞影響?

凡是將攻擊者可控制的資料交由尚未修補的 Brotli 解碼器處理的軟體,都可能面臨風險。

1. Web 伺服器與 API

使用 Node.js 或 Bun 開發的網站及 API 服務,如果會接收並解壓縮透過 HTTP 傳送的 Brotli 壓縮資料,就可能受到這項漏洞影響。

資安研究團隊 Imperva 已在 Express 5.0.0、5.3.0,以及 body-parser 2.0.0、2.0.1、2.3.0 等版本中成功重現攻擊,但尚未測試所有中間版本。ELLIO 也在 Express 5.3.0、Koa 3 及 @koa/bodyparser 6 的環境中成功驗證漏洞。

需要注意的是,並非所有使用 Node.js 的網站或 API 都會受到影響。只有當應用程式或相關函式庫使用 Brotli 解壓縮功能,並處理惡意壓縮資料時,才可能觸發漏洞。

由於漏洞存在於 Node.js 本身,因此只更新 Express 或 body-parser 並無法解決問題,仍須將 Node.js 升級至已修補的版本。

2. HTTP 用戶端與背景工作程序

當應用程式從外部伺服器接收資料,並自動使用 Brotli 進行解壓縮時,也可能受到這項漏洞影響。

以 Python 為例,以下常見套件若偵測到系統已安裝 Brotli 或 brotlicffi,就可能自動使用這些函式庫進行解壓縮:

  • urllib3(以及使用它的 requests)
  • httpx
  • aiohttp
  • Scrapy

這代表即使開發人員沒有在程式中直接使用 Brotli,應用程式仍可能透過其他套件間接使用其解壓縮功能,進而面臨漏洞風險。

目前研究人員已在 Node.js 環境中成功利用此漏洞執行程式碼,但尚未證實能在上述 Python 套件中成功利用。由於這些套件使用的 Brotli 解壓縮功能,與 Node.js 受影響的功能採用相同的底層程式碼,因此仍應檢查相關套件版本,並完成必要的安全更新。

3. Proxy 與服務網格

企業使用的 Envoy、Istio 等代理伺服器(Proxy)及服務網格(Service Mesh),如果啟用了 Brotli 解壓縮功能,也可能受到這項漏洞影響。

4. 處理外部 Brotli 壓縮檔案的系統

除了網站與 API 服務,其他會處理外部 Brotli 壓縮資料的應用程式或系統,也可能受到影響,應一併納入漏洞檢查與修補範圍。

隱藏風險:企業可能不知道自己正在使用 Brotli

許多企業可能不知道內部哪些系統正在使用 Brotli,因為這項技術經常內建於應用程式執行環境、容器映像檔或代理伺服器(Proxy)中,即使沒有主動安裝,也可能在不知情的情況下使用。

漏洞剛公開時,主要漏洞資料庫尚未完整收錄受影響的 Python 套件,導致 pip-audit 等漏洞掃描工具可能無法偵測出問題。目前相關資訊已納入 GitHub 安全公告 GHSA-9v8h-qqgm-4m35,因此建議企業重新掃描使用中的軟體套件,確認是否存在漏洞風險。

此外,研究人員也發現,部分 .NET、PHP、Ruby 版本,以及資料庫與檔案壓縮工具,都內建了 Brotli 相關程式碼,代表這項漏洞的影響範圍可能比企業原先預期的更廣。

Microsoft 已於 10 月 25 日針對 .NET 8、9、10 與 11 釋出安全更新,修補版本分別為 8.0.33、9.0.22、10.0.14 及 11 RC3。.NET Framework 則不受此漏洞影響。

需要注意的是,並非所有 .NET 應用程式都會受到影響,只有使用 Brotli 解壓縮功能時才可能存在風險,例如 ASP.NET Core 的 HTTP 請求解壓縮功能,或 HttpClient 的自動解壓縮功能。

PHP 也於 10 月 26 日釋出 Windows 版本更新,納入已修補的 Brotli 1.2.1,更新版本包括 8.2.35-1、8.3.36-1、8.4.27-1 及 8.5.12-1。PHP 原始碼版本並未變更,而 PHP brotli 擴充模組則已於 0.21.1 版本完成修補。許多企業可能不知道內部哪些系統正在使用 Brotli,因為這項技術經常內建於應用程式執行環境、容器映像檔或代理伺服器(Proxy)中,即使沒有主動安裝,也可能在不知情的情況下使用。

漏洞剛公開時,主要漏洞資料庫尚未完整收錄受影響的 Python 套件,導致 pip-audit 等漏洞掃描工具可能無法偵測出問題。目前相關資訊已納入 GitHub 安全公告 GHSA-9v8h-qqgm-4m35,因此建議企業重新掃描使用中的軟體套件,確認是否存在漏洞風險。

此外,研究人員也發現,部分 .NET、PHP、Ruby 版本,以及資料庫與檔案壓縮工具,都內建了 Brotli 相關程式碼,代表這項漏洞的影響範圍可能比企業原先預期的更廣。

Microsoft 已於 10 月 25 日針對 .NET 8、9、10 與 11 釋出安全更新,修補版本分別為 8.0.33、9.0.22、10.0.14 及 11 RC3。.NET Framework 則不受此漏洞影響。

需要注意的是,並非所有 .NET 應用程式都會受到影響,只有使用 Brotli 解壓縮功能時才可能存在風險,例如 ASP.NET Core 的 HTTP 請求解壓縮功能,或 HttpClient 的自動解壓縮功能。

PHP 也於 10 月 26 日釋出 Windows 版本更新,納入已修補的 Brotli 1.2.1,更新版本包括 8.2.35-1、8.3.36-1、8.4.27-1 及 8.5.12-1。PHP 原始碼版本並未變更,而 PHP brotli 擴充模組則已於 0.21.1 版本完成修補。

已修補版本一覽

專案/元件 已修補版本
Node.js22.23.4、24.22.1、26.12.1
Bun1.4.4
Envoy1.40.0、1.39.3、1.38.6、1.37.8、1.36.12
Istio1.29.9、1.30.6、1.31.2
Brotli(上游 C 函式庫)1.0.10、1.1.1、1.2.1
Python Brotli1.2.1
Python brotlicffi1.2.1.0
.NET8.0.33、9.0.22、10.0.14、11 RC3
PHP for Windows8.2.35-1、8.3.36-1、8.4.27-1、8.5.12-1
PHP brotli 擴充模組0.21.1

表 1:各專案已修補 CVE-2026-111497 的版本。

已停止維護的 Node.js 18.x、20.x、23.x 及 25.x 版本,將不再獲得安全更新,建議企業儘速升級至仍受官方支援的版本。此外,Istio 1.29 雖然已於 10 月 15 日停止支援,但其 1.29.9 版本仍包含此次漏洞的修補程式。為確保後續資安防護,企業仍應規劃升級至受支援的版本。

企業應立即採取的六項應變措施

1. 全面盤點 Brotli 的使用情況

  • 確認伺服器、無伺服器函式(Serverless functions)、建置代理程式(build agents)及容器映像檔中使用的 Node.js 與 Bun 版本。
  • 檢查 Envoy 與 Istio 的版本,確認是否啟用 Brotli 解壓縮功能。
  • 檢查 Python 環境中是否安裝 Brotli 或 brotlicffi 套件,並將內建 Node.js 的開發工具與命令列工具一併納入檢查。

軟體物料清單(SBOM)與容器映像檔掃描可協助找出部分受影響元件,但可能無法涵蓋所有內建 Brotli 的軟體,因此企業仍應全面清查相關系統,避免遺漏潛在風險。

2. 套用修補程式並重新部署

將受影響的軟體與元件更新至已修補版本,並重新建置容器映像檔及相關執行檔。同時,重新啟動所有仍在使用舊版本的服務、背景工作程序(worker)及服務副本(replica),確保更新確實生效。

對於已停止維護的 Node.js 舊版本(如 18.x、20.x 等),建議企業儘速升級至仍受官方支援的版本,以降低資安風險。

3. 修補完成前,先降低 Brotli 解壓縮風險

在完成漏洞修補前,建議先阻擋來自不受信任來源、且使用 Brotli 壓縮的 HTTP 請求(Content-Encoding: br),避免系統在解壓縮惡意資料時觸發漏洞。針對 Envoy 與 Istio,應暫時停用處理 HTTP 請求與回應的 Brotli 解壓縮功能。

需注意: 停用 Envoy 或 Istio 的解壓縮功能後,壓縮資料仍可能直接傳送至後端服務。如果後端系統仍會使用 Brotli 進行解壓縮,就可能繼續面臨漏洞風險。

此外,單純從 Accept-Encoding 中移除 br,並不能完全阻止伺服器傳送 Brotli 壓縮資料,因此不能視為完整的防護措施。Gzip 與 deflate 壓縮功能則可維持啟用。

4. 不要只依賴 CDN 或 WAF 防護

即使在內容傳遞網路(CDN)停用 Brotli 回應壓縮功能,也無法完全阻止惡意壓縮資料傳入系統,或避免用戶端在解壓縮資料時觸發漏洞。此外,單靠限制資料大小或設定網站應用程式防火牆(WAF)規則,也無法涵蓋所有可能受到攻擊的環節。因此,CDN 與 WAF 只能作為輔助防護措施,無法取代正式的漏洞修補與安全更新。

5. 審慎使用漏洞檢測工具

對於來源不明的漏洞概念驗證(PoC)程式碼、掃描器或檢測工具,應謹慎使用,避免下載或執行可能含有惡意程式碼的工具。若需要進行漏洞測試,應在隔離的測試環境中執行,避免檢測工具本身對企業系統造成額外的資安風險。

6. 持續監控可能的攻擊跡象

系統異常與當機: 若 Node.js、Bun、Envoy 或 Istio 出現非預期當機、SIGSEGV(記憶體存取錯誤)訊號或反覆重新啟動,尤其是在處理 Brotli 壓縮資料後,應進一步調查是否與漏洞利用有關。

異常流量與程式行為: 留意不尋常的 Brotli HTTP 流量(Content-Encoding: br)、對外 HTTP 請求後發生的解壓縮錯誤,以及對外提供服務的程式是否異常啟動其他程式。

威脅情資比對: 參考 ELLIO 等資安研究機構公布的可疑來源 IP 位址及攻擊資料雜湊值(payload hash),並與企業自身的資安監控資料進行比對。需注意,這些指標僅來自特定攻擊事件,無法涵蓋所有可能的攻擊行為,因此不能作為判斷系統是否遭入侵的唯一依據。

趨勢科技 TrendAI™ 如何協助企業防護?

安裝修補程式才是解決這項漏洞的根本方法。 趨勢科技 TrendAI™ 提供多項資安防護能力,協助企業找出受影響的系統、在修補期間加強防護,並調查是否出現漏洞遭利用的跡象。

相關防護規則與詳細資訊,請參閱趨勢科技 TrendAI™ 知識庫文件 KA-0024830。

1. 掌握企業漏洞曝險情況

TrendAI Vision One™ Cyber Risk Exposure Management(CREM,資安曝險管理)可透過 Exposure Overview(曝險總覽)找出使用受影響版本的資產,並依資產的重要程度進行分級,協助資安團隊優先修補對外提供服務、且對企業營運影響較大的系統。

2. 加強網路與主機端防護

企業可透過以下產品及防護規則,協助偵測漏洞攻擊流量:

  • TrendAI Vision One™ TippingPoint™: Filter 48101
  • TrendAI Vision One™ Network Detection and Response(NDR,網路偵測與回應): Rule 6040
  • TrendAI Vision One™ Endpoint Security(含 Server and Workload Protection)及 TrendAI™ Deep Security: 入侵防護規則 1012761

需注意: 上述防護規則不會對 Brotli 資料進行解壓縮,而是直接檢查壓縮狀態下的資料,因此偵測能力仍有限制。這些規則可作為修補期間的輔助防護,但不能取代正式的漏洞修補。

3. 偵測可能的入侵跡象

TrendAI Vision One™ 可透過 Observed Attack Techniques(觀察到的攻擊技術),偵測 Node.js 程序是否異常啟動系統命令工具(Shell),或建立非預期的對外網路連線。

TrendAI Vision One™ Container Security 也能監控容器環境中的 Node.js 程序,針對異常啟動其他程式或建立可疑對外連線的行為發出警示。

這些偵測能力可協助資安團隊發現漏洞遭利用後可能出現的異常活動,並進一步調查是否發生入侵事件。

4. 封鎖已知攻擊來源

趨勢科技 TrendAI™ Web Reputation Services(網站信譽評等服務)可封鎖此次攻擊活動中已通報的攻擊者 IP 位址,協助降低企業遭已知攻擊來源威脅的風險。

5. 主動調查企業內部是否存在攻擊跡象

TrendAI Vision One™ Threat Intelligence(威脅情報)已針對此漏洞提供專屬威脅情報資訊,包含漏洞背景、威脅分析及主動威脅調查所需的查詢指令(Hunting Queries)。

企業資安團隊也可透過 TrendAI Vision One™ Agentic SIEM 與 XDR 的 XDR Data Explorer,搜尋端點上的程序活動,確認對外提供服務的 Node.js 程序是否出現異常行為,例如啟動系統命令工具或下載工具。

這些功能可協助企業主動追查潛在攻擊跡象,而不只是等待系統發出警示。

6. 透過專家服務協助調查與應變

對於缺乏足夠人力或資源持續監控資安威脅的企業,TrendAI Vision One™ Services – Managed Detection and Response(MDR,託管式偵測與回應服務)可提供全年無休、全天候的威脅偵測、調查與應變支援。

若企業希望確認自身是否曾成為攻擊目標,可申請趨勢科技 TrendAI™ 入侵鑑識評估(Compromise Assessment);若懷疑系統已遭入侵,則應儘速聯繫趨勢科技 TrendAI™ 資安事件應變團隊。

現有客戶如有任何疑問,可直接聯繫所屬業務代表;其他企業如需進一步了解漏洞防護方案或尋求資安協助,歡迎透過趨勢科技 TrendAI™ 聯絡頁面與我們聯繫。