漏洞概要
CVE-2025-68613 | CVSS 9.9/10(極危險)
影響版本:0.211.0 ~ 1.120.3、1.121.0
修復版本:1.120.4、1.121.1、1.122.0 以上
公開日期:2025/12/19
這個漏洞的核心問題在於 Expression 的 Sandbox 隔離不足。
Expression 是 n8n 常用的表達式語言
用在動態控制資料,例如:
1 | {{ $now.format('yyyy-MM-dd') }} |
而這個漏洞的意思是:只要擁有「編輯 workflow」權限的使用者,
就能透過特製的表達式執行任意系統指令,進而操控 n8n 主機。不需要管理員權限,攻擊門檻極低。
白話來說,攻擊前提是:攻擊者能登入你的 n8n,並且有 workflow 編輯權限(Editor),才有機會利用 Expression 來觸發風險。
根據公開掃描統計,全球有 超過 10 萬個 n8n 實例可能受影響,且 PoC 攻擊程式碼已在網路上流傳。
雖然資安問題看起來很嚴重,不過如果你的 n8n 不對外開放登入、也沒有其他人帳號/分享 Editor 權限,風險相對較低
但只要有人能登入並編輯 workflow,就要當成高風險。
被攻擊的可能有哪些?
意外分享 n8n 權限給外部使用者
一旦外部使用者擁有 n8n 的編輯權限
他就可以修改 workflow 中的 expression 來執行系統指令
可能會從中竊取資料或執行任意指令
這時候你的 n8n 主機就會被攻擊
另一種帳號的問題
就是原本登入的帳密不小心被別人知道
那他也能登入到你的 n8n 進行編輯
匯入來路不明的模板
這是另一個可能比較容易中招的方式
如果他把惡意的 expression 藏在模板中
那就有可能在你匯入模板並且執行時就會中招!
還好目前問題已經被修復,並且有更新的版本
身為使用者的我們就是去更新 n8n 的版本就能解決問題
下面教大家怎麼檢查版本跟更新版本
如何檢查版本
方法一:從 UI 查看
進入 n8n 後台,點擊左下角的 ❔ icon → About n8n → 就會顯示目前版本
如果版本號在 0.211.0 ~ 1.120.3 之間或是 1.121.0,請立即更新。
方法二:從命令列查看(Docker / npm 常用)
1 | # npm 全域安裝 |
更新修復方式
Docker 環境
選項 A:升級到 1.x 修復版(推薦,最快速)
1 | # 指定修復版本 |
選項 B:升級到 2.x 版本
2.x 有 breaking changes,升級前請先:
- 到 Settings > Migration Report 檢查相容性
- 備份所有 workflows
1 | docker pull docker.n8n.io/n8nio/n8n:latest |
官方 2.x 遷移指南:n8n v2.0 breaking changes
n8n 2.0 大更新要來了!包含新功能介紹、Migration Report 使用教學、Breaking Changes 詳解
Zeabur 平台
- 進入專案的 n8n 服務
- 點擊設定,在下方會看到版本號,調整為想要更新的版本
建議更新原則(以官方公告為準):
→ 1.x:升級到 1.120.4 / 1.121.1 / 1.122.0(或以上)
→ 2.x:升級到最新的 Patch 版本
npm 全域安裝(非 Docker)
如果你是用 npm 全域安裝 n8n,建議直接升到修復版本或最新版本:
1 | # 直接升到最新版本 |
常見問題
延伸閱讀
參考資料: