查 Node.js 漏洞,執行 node -v 看版本,對照官方公告:須在 22.23.4、24.22.1 或 26.12.1 以上,PHP 須 8.2.35 以上;更舊版本已無修補,只能升級。
PHP 與 Node.js 同日發布重大更新,發生了什麼事?
兩個支撐全球大量網站的執行環境,在 2026 年 10 月 21 日同一天修補了可導致遠端程式碼執行(Remote Code Execution,RCE)的漏洞,而且舊版本都沒有修補。
PHP2Shell:兩個 CVSS 9.2 的遠端程式碼執行漏洞
PHP 官方修補了 CVE-2026-109618 與 CVE-2026-109619 兩個核心層漏洞,社群稱為 PHP2Shell,CVSS v4.0 評分皆為 9.2(The PHP Foundation,2026)。前者在請求觸及 memory_limit 時造成記憶體損毀,研究人員在 Apache mod_php 預設設定下示範了完整的遠端程式碼執行;後者在致命錯誤時形成 use-after-free。攻擊者只需一個未經驗證的 HTTP 請求就能觸發,不論網站是 WordPress、Laravel 或自行開發,所有 PHP 執行方式全部受影響。CVE 編號提前外洩,官方因此提前發布修補,Cloudflare 隨後已觀測到攻擊流量(Cloudflare,2026)。
| PHP 版本線 | 修補版本 | 狀態 |
|---|---|---|
| 8.5 | 8.5.12 | 有修補 |
| 8.4 | 8.4.27 | 有修補 |
| 8.3 | 8.3.36 | 有修補 |
| 8.2 | 8.2.35 | 有修補,安全支援於 2026 年底結束 |
| 8.1 以下(含 7.4) | 無 | 已停止維護,必須升級 |
Node.js 重大漏洞:10 個 CVE、4 個高風險
Node.js 官方同日發布 26.x、24.x、22.x 的安全更新,共修補 10 個 CVE,4 個為 High(Node.js 官方,2026):
- CVE-2026-111497:Brotli 解碼器越界寫入,可遠端執行程式碼。fetch() 會自動解壓 br 回應,會呼叫外部 API 的服務都可能受影響。
- CVE-2026-106069、CVE-2026-105483:主機名稱被寬鬆解讀為 IP,或 IP 以全形數字書寫時,TLS 主機名驗證可被繞過。
- CVE-2026-105482:dns.resolve 遇到 NUL 字元會截斷網域,可繞過 SSRF 防護。
修補版本為 26.12.1、24.22.1、22.23.4。Node.js 20.x 已於 2026 年 4 月 30 日結束維護,不會修補,官方建議升級至 22.x 以上。
CVE 和 CVSS 是什麼?漏洞和弱點有差別嗎?
CVE 是漏洞的身分證字號,CVSS 是嚴重度分數。CVE(Common Vulnerabilities and Exposures)給每個公開漏洞唯一編號,格式是「CVE-年份-流水號」。CVSS(Common Vulnerability Scoring System)以 0 到 10 分描述嚴重程度,9.0 以上為 Critical、7.0 到 8.9 為 High,反映被利用後多嚴重,不代表你的系統一定會被攻擊。「弱點」與「漏洞」在中文資安文件裡是同一回事,公告常寫弱點,新聞常寫漏洞。
Node.js 漏洞怎麼查?怎麼知道自己有沒有中?
最直接的方法是查版本,但 Node.js 的版本藏在很多地方,只查伺服器不夠:
- 伺服器執行 node -v,低於 22.23.4、24.22.1、26.12.1,或仍是 20.x 以下,就需要升級。
- 檢查 Docker 映像、.nvmrc、package.json 的 engines 欄位與 CI/CD 設定,任何一處沒更新,下次部署就會把舊版帶回去。
- 內嵌 Node.js 的桌面程式、使用啟動快照或單一執行檔(SEA)的專案,必須以新版重新建置。
- 執行 npm audit 查相依套件的已知 CVE,這與執行環境的漏洞是兩件事,都要看。
PHP 網站則執行 php -v,或在 WordPress 後台「工具 → 網站狀態 → 資訊」查看。使用 Linux 發行版套件時,版本號可能不變但已套用修補,請向主機商確認。
PHP 7.4 為什麼不能只打補丁,必須升級?
因為 PHP 7.4 已經沒有補丁可打。PHP 7.4 的安全支援在 2022 年 11 月結束,8.1 在 2025 年 12 月結束(The PHP Foundation,2026),這些版本統稱維護結束(End of Life,EOL),即使發現 CVSS 9.2 的重大漏洞,官方也不會修補。停在 7.4 的網站面對的不是「等補丁」,而是「永遠沒有補丁」,唯一的路是升級到 8.2 以上;考量 8.2 支援只到 2026 年底,更務實的目標是 8.3 或 8.4。
從 7.4 升到 8.4 跨兩個大版本,動態屬性棄用、比較語意改變、舊外掛停止維護等相容性問題需要有經驗的工程師逐一判斷,這也是許多網站一直停在 7.4 的真正原因。平時不升級省下的成本,會在出事那天連本帶利還回去,差別只在於是在你選的時間還,還是在攻擊者選的時間還。
收到重大漏洞公告,企業第一步該做什麼?
第一步是確認「有沒有中」,而不是先開會或先通知所有人:
- 比對範圍:拿公告的受影響版本對照自家資產清單,列出受影響系統與負責人。
- 評估曝險:依機密性、完整性、可用性判斷,對外服務、處理個資或金流的系統優先。
- 決定處置:有修補版本就排升級;暫時無法升級的先套用官方緩解措施,並確認 WAF、監控與備份都在。
- 處置後通報:升級、驗證、留存紀錄,再依對象分級說明。為什麼主張先處置再通報,見重大漏洞先修補再報告,錯了嗎?。
沒有及時處理會發生什麼事,網路駭客案例整理了實際事件。
從官方公告到 25 個專案修補完成,中間發生了什麼?
影響資安團隊在 10 月 21 日晚間接獲自家 AI 監控流程的推播,隔天清晨完成 25 個 PHP 與 Node.js 專案的升級與驗證:
| 時間 | 事項 |
|---|---|
| 10 月 21 日晚間 | AI 漏洞監控流程偵測官方公告,判定重大,推播並附受影響專案清單 |
| 10 月 21 日深夜 | 完成版本盤點與風險評估,依 ISO/IEC 27001 緊急變更程序啟動處置,備份並規劃回復方案 |
| 深夜至 22 日清晨 | 分工升級,PHP 從 7.4 升至 8.4 或 8.2,Node.js 升至修補版本,逐一驗證,05:00 前全數完成 |
| 10 月 22 日上班時間 | 依專案規模與性質,以訊息、書面報告或線上會議分級通報,並完成稽核用變更紀錄 |
這是一次事件的實際紀錄,處理時間依漏洞性質與系統複雜度而不同。
為什麼能在一夜之間修完?速度從哪裡來?
速度不是來自加班,而是來自平時就在運作的流程、清單與制度。
第一時間知道,靠流程不靠運氣
團隊訂閱多個官方安全公告,由 AI 工作流自動讀取、分級,只推播與維運專案相關的公告並附受影響清單。做法見資安團隊如何靠 AI 工作流做到第一時間反應。
盤點不從零開始,兩種技術棧並行
平時維護所有專案的版本清單,盤點只需確認與補漏。受影響專案橫跨政府機關、非營利基金會、大學研究單位與企業官網,PHP 與 Node.js 升級方式完全不同,團隊同時具備兩者經驗才能並行處理。
深夜執行與版本選擇都是專業判斷
團隊清楚每個客戶的流量高峰,選在深夜完成。十個 PHP 7.4.33 專案中,九個直接升至 8.4.27,一個因相依套件相容性暫升至 8.2.35,下一階段升級已排入計畫。
同一份驗證清單,分級通報
每個專案升級後都驗證版本、服務重啟、前後台主要功能、HTTPS、表單與郵件、API 串接、排程與錯誤紀錄,通報依客戶規模與合規需求分三級。這一切依影響視覺科技已導入的 ISO/IEC 27001 弱點管理與變更管理程序執行:制度讓快速決策有所本,AI 工作流讓制度跑得快。
這次事件留下什麼課題?
真正的課題不是修得多快,而是為什麼還有十個專案停在 PHP 7.4。這些多半是接手維護的既有系統,功能穩定,加上 WAF、監控、備份等補償控制一直都在,評估結論一直是「風險可接受」。這次事件改變的是前提:EOL 版本遇到重大漏洞時沒有補丁,風險從「可能」變成「確定」。下一步是把「被迫漏夜升級」變成「排程內的例行升級」:對接近 EOL 的環境提前預警、資產清單改為自動掃描。創辦人的看法見團隊一夜修完 25 個專案,我卻不想談速度。
常見問題
Node.js 資安更新該遵守哪些原則?
只用官方仍維護的版本線、訂閱官方安全公告、把每個專案的版本寫進資產清單、升級後一定驗證。業界會依嚴重度分級訂目標時間,但數字依個案不同,此處不列出,也不是本公司的承諾。
WordPress 網站需要更新 WordPress 本身嗎?
不需要。這次漏洞在 PHP 執行環境,不在 WordPress 核心、外掛或佈景主題,WordPress.org 已表示不會為此發布更新。只需把 PHP 更新到修補版本,再確認後台登入、表單與外掛正常。
只靠 WAF 擋住攻擊可以嗎?暫時無法升級怎麼辦?
不能取代更新,WAF 只涵蓋已知攻擊路徑。暫時無法升級時,PHP 可將 session.upload_progress.enabled 設為 0 並重啟,Node.js 可對不可信來源拒絕 br 編碼,這些只是爭取時間,不是解法。
如果你不確定網站是否受影響,或希望有一支團隊在下一次重大漏洞爆發時主動替你盯著,歡迎預約諮詢。影響資安團隊提供弱點評估、版本升級規劃與持續維運監控,並協助 ISO/IEC 27001 建置與導入,正式驗證由第三方稽核。
參考資料
-
- Node.js,《October 2026 Security Releases》,2026 年。nodejs.org
- PHP,《PHP 8 ChangeLog》8.2.35,2026 年。php.net
- Bitsight,《CVE-2026-109618 and CVE-2026-109619 (PHP2Shell): Two Critical PHP Remote Code Execution Flaws》,2026 年。bitsight.com
- Fortinet,《Understanding PHP2Shell Vulnerabilities and Reducing Risk While You Patch》,2026 年。fortinet.com
- Cloudflare,《Cloudflare deploys protections against php2shell vulnerability》,2026 年 10 月。blog.cloudflare.com
