Google Cloud已於2026年10月30日正式停用(decommission)Node.js 20執行環境:Cloud Run原始碼部署與Cloud Run functions從這天起不能再用Node.js 20建立或更新服務,仍在執行的工作負載也可能被停用。更早一週,Node.js官方在10月21日發布安全更新,修補10個漏洞、其中4個為高風險,而Node.js 20這類已終止支援(EOL)的版本不會有修補。如果您的前後端系統或Nuxt網站還停在Node.js 20,現在就是排定Node.js升級的時間點。
Node.js 20停用,哪些服務會受影響?
使用Google託管執行環境(runtime)的服務受影響最直接;自行打包的容器映像不受Google期限約束,但安全風險一樣存在。
- Cloud Run原始碼部署、Cloud Run Jobs、Cloud Run functions:2026年4月30日進入deprecation,10月30日decommission。之後無法再以nodejs20建立或更新,既有服務也可能被停用。
- App Engine標準環境:Node.js 20的支援已於2026年4月30日結束,並將在2027年4月30日進入deprecated,不再有執行環境層級的支援。
- 自行建置的容器(Cloud Run容器部署、GKE、Compute Engine):Google不會強制停用,但Node.js 20自2026年4月30日起已是EOL版本,官方安全更新不再涵蓋,維護責任在自己身上。
以目前的時程來看,Node.js 22在Cloud Run functions的decommission日期是2027年10月31日,Node.js 24則是2028年10月31日。選版本時,這個日期就是系統下一次必須動的期限。
10月21日的Node.js安全更新修了什麼?
22.x、24.x、26.x三條仍受支援的版本線都要更新,EOL版本則一律不會有修補。
這次Node.js官方發布v26.12.1、v24.22.1、v22.23.4,共修補10個CVE。最值得注意的是node:zlib的Brotli解碼器越界寫入(CVE-2026-111497),有機會導致遠端執行程式碼;另有多個TLS主機名稱驗證可被繞過的問題,例如以全形數字或前置零的IPv4位址繞過檢查,以及dns.resolve系列函式遇到NUL字元時會截斷主機名稱。對經常處理壓縮回應、對外呼叫API的後端服務來說,這些都不是可以放著的問題。
官方公告寫得很直白:每次安全更新發布時,EOL版本一律視為受影響,而且不會提供修補。換句話說,還停在Node.js 20的系統,從這次開始就是帶著已公開的漏洞在執行。
版本停在原地不會讓系統更穩,只會讓已知漏洞越積越多。
Nuxt、Vue專案也要一起看嗎?
要。Node.js是Nuxt伺服器端渲染(SSR)與Nitro伺服器的底層,執行環境和框架最好在同一次維運中規劃。
Nuxt在10月27日發布v4.6.3,包含5項安全修正,涵蓋開發伺服器的檔案讀取、請求路徑中點號區段的處理、page islands的重新導向規則等。8月時Nuxt也曾揭露CVE-2026-71320,在啟用vue.runtimeCompiler的設定下可能導致遠端執行程式碼,修正版本為3.21.10與4.5.1。我們的經驗是,框架升級常常牽動Node.js版本需求,分兩次做就要測兩輪,不如把Node.js升級、套件更新與回歸測試排進同一個維運窗口。
KYART光沅創意怎麼排Node.js升級?
先盤點、再分環境升級、最後用監控確認,不要直接在正式環境換版本。
- 盤點所有用到Node.js的地方:不只是對外網站,還有內部資訊系統的API服務、排程工作、CI/CD建置流程與Cloud Run functions。最常被漏掉的,是「只在建置時用到」的Node.js版本。
- 選定目標版本:以Active LTS的Node.js 24為主要目標;若相依套件尚未支援,Node.js 22可用到2027年4月30日,但要把下一次升級一併排進時程。
- 先在測試環境跑完整回歸:重點看原生模組(native addon)、加密與TLS相關行為、壓縮處理,以及前後台整合的API呼叫。
- 搭配源碼弱點掃描與相依套件檢查:升級時同步跑一次相依套件稽核與源碼弱點掃描,把框架與套件的已知漏洞一起清掉。
- 上線後持續監控:在AWS或GCP的監控與日誌中觀察錯誤率、回應時間與記憶體使用,確認穩定後再移除舊版本的回滾路徑。
我們在做大型內部資訊系統與前後端整合時,最常遇到的不是升級本身困難,而是沒人說得清楚系統裡到底跑著幾個Node.js版本。把版本盤點變成雲端代管維運的例行項目,下一次EOL來時就不會手忙腳亂。
常見問題
Q:服務在Cloud Run上還正常執行,可以先不管嗎?
A:不建議。decommission後無法再更新該服務,代表連緊急修正都部署不上去,工作負載也可能被停用。
Q:用Docker自行打包的容器也要升級嗎?
A:要。Google不會強制停用,但容器內的Node.js 20已是EOL,不再有官方安全修補。
Q:要直接跳到最新的Node.js 26嗎?
A:視相依套件而定。企業系統多以LTS版本為主,我們通常建議先升到Node.js 24,穩定後再評估下一步。
執行環境的生命週期是固定的,我們能掌握的是自己升級的節奏。把Node.js升級當成例行功課,而不是被期限追著跑的急件,系統才能長久安穩。
參考資料:
Cloud Run functions執行環境支援時程(docs.cloud.google.com)
Cloud Run執行環境生命週期(docs.cloud.google.com)
App Engine標準環境支援時程(docs.cloud.google.com)
Node.js October 2026 Security Releases(nodejs.org)
Node.js Release Schedule(github.com)
Nuxt Changelog(nuxt.com)