Node.js 10 項安全修補:先核對版本線,再確認實際執行環境
Node.js 專案於 2026 年 10 月 21 日發布 26.x、24.x、22.x 的安全更新。公告列出 10 項漏洞,其中 4 項為 High,並分別提供 26.12.1、24.22.1、22.23.4 修補版本。維護服務的人應先確認部署使用哪條 Node.js 版本線,再安排對應更新;只改專案相依套件,不等於更新了正在執行的 Node.js。
三條 Node.js 發行線各自對應的修補版本。
先核對版本線與修補版本
三條發行線各有對應的修補版本:26.x 更新至 26.12.1、24.x 更新至 24.22.1、22.x 更新至 22.23.4。公告也說明,個別漏洞影響的分支不同;「10 項漏洞、4 項 High」是公告列出的總數,不代表每項漏洞都影響全部三條線。
公告漏洞總數與 High 項目數。
Node.js 公告指出,EOL(停止支援)版本在發布安全更新時也一律視為受影響,並建議使用符合發布時程的最新版本。若服務仍依賴已停止支援的版本,單靠這次的三個修補版本對照不足以判定可用的更新路徑;應先核對官方支援狀態與可升級版本。
High 項目涵蓋 Brotli、DNS 與 TLS
四項 High 包含 DNS resolve 對含 NUL 字元名稱的處理、兩項 TLS 主機名稱驗證問題,以及 Brotli 解碼器問題。官方將 CVE-2026-111497 描述為 Brotli 解碼器越界寫入,可能導致遠端程式碼執行,並列出 26.x、24.x、22.x 均受影響。這是漏洞可能造成的影響,不是已遭利用或特定系統已被入侵的證據。
24.x 的官方發行說明將 24.22.1 標示為 2026 年 10 月 21 日的 LTS 安全版本,並列出 TLS、DNS、Brotli 等修正。這些細節可協助維護者理解該版本的變更;實際更新仍須依服務部署的版本線處理。
把更新套用到實際執行環境
建議按部署方式核對並更新 Node.js 本身:
在實際執行服務的環境確認版本與執行檔路徑,例如執行 node --version,並在服務程序中檢查 process.version 與 process.execPath。不要只看開發機或套件檔中的版本。 將執行環境或容器基底映像更新至所屬版本線的修補版本,重新建置映像並部署;若服務使用既有主機上的 Node.js,也要更新該主機實際供服務程序使用的執行檔。 重新啟動或重新部署服務後,再從服務程序或其實際執行環境讀回 process.version 和 process.execPath,確認新程序確實使用預期版本。僅確認映像標籤、安裝檔或 CI 建置成功,不能單獨證明線上程序已切換。
npm audit 檢查的是 npm 套件相依性;它不會替你更新 Node.js runtime。更新 Go 開發工具或其他語言的套件,也不會改變已部署的 Node.js binary。
若暫時無法更新,這份公告沒有列出可取代安全更新的官方緩解措施。維護者可把升級排程列為優先事項,並評估暫時限制不可信輸入抵達相關處理路徑、縮小服務暴露範圍;這些是一般性的暫時降曝險作法,不能修補漏洞、不能取代升級,也不能據此判定服務已安全。不要以關閉 TLS 憑證驗證作為緩解方式。
公告說明的是風險與修補,不是入侵狀態
Node.js 官方公告提供漏洞、受影響版本線及修補版本資訊;它沒有證明任何特定部署已遭利用。所選 X 貼文則以「10 項、4 項 High」提醒讀者更新,適合作為事件傳播脈絡,不能作為正式版本或風險判斷依據。維護者應以官方公告核對版本,並以服務程序實際回報的 runtime 資訊確認更新結果。
原文:https://easyvibecoding.app/curated/3502-nodejs-security-releases-october-2026