新聞

工作流程自動化平臺n8n修補一項高風險漏洞。已登入且能建立或修改工作流程的使用者,可利用特製的程式碼避開表達式沙箱限制,在執行n8n的主機上執行系統命令。官方已在n8n 2.31.5與2.32.1完成修補,建議使用者升級至這些版本或後續版本。

n8n可將不同網路服務串接成自動化流程,並允許使用者在流程節點中加入JavaScript表達式,處理前一個步驟傳來的資料。為防止這些程式碼直接接觸伺服器底層環境,n8n設有表達式沙箱,也就是將程式碼限制在特定範圍內執行的隔離機制。

該漏洞與沙箱處理箭頭函式(Arrow Function)的方式有關。箭頭函式是JavaScript中較精簡的函式寫法,部分省略大括號、直接傳回單一運算式的箭頭函式,過去未套用原有的變數替換與檢查程序。攻擊者可藉此接觸原本應由沙箱隔離的Node.js全域物件,再呼叫作業系統功能。

新版已補上檢查程序,確保直接傳回單一運算式的箭頭函式,其中使用的變數會從受限制的資料環境取得,而不是連到n8n主機的Node.js執行環境。開發團隊也加入測試,確認這類表達式無法再取得主機中的Node.js全域物件,也無法藉此透過內建模組執行系統命令。

雖然該漏洞並非未登入即可利用,攻擊者還是必須先取得有效帳號,以及建立或修改工作流程的權限,不過,一旦成功利用,原本僅能編輯自動化流程的使用者,就可能以n8n服務程序擁有的權限操作主機。

n8n今年2月曾修補表達式沙箱漏洞CVE-2026-27577,同樣可能讓具備工作流程編輯權限的使用者在主機上執行命令。資安公司Security Joes研究團隊為確認該漏洞的修補措施是否仍可被繞過,重新檢視n8n對不同JavaScript語法的處理方式,發現直接傳回單一運算式的箭頭函式未納入完整檢查,因而找到這項新的沙箱繞過漏洞。

無法立即升級的管理員,可暫時限制n8n執行個體的存取,並只讓完全可信任的使用者建立或編輯工作流程,但官方表示這些措施無法完全排除風險。