Nuclei爆五漏洞:Goja引擎與DAST繞過可致RCE
GitHub Advisory Database · 2026-09-22
Goja引擎漏洞讓攻擊者只要誘使掃描主機載入一個惡意 Nuclei 範本,就能在該主機上執行任意原生程式碼,完全取得機密性、完整性與可用性的控制權。這個弱點源自 Goja JavaScript 引擎內部的堆積記憶體越界寫入,不需要啟用 -code 旗標、也不需要範本簽章驗證通過,因為未簽署範本預設就會執行。
連環公告同一批公告還包含另外四個中低風險漏洞,全部集中在 Nuclei v3 系列,並在同一天由 GitHub Advisory Database 揭露。開發團隊 ProjectDiscovery 已在 3.10.0 版本中一次修補這五個問題。
漏洞機制
Goja堆積越界寫入是這次影響最嚴重的弱點,編號 CVE-2026-76819,CVSS 為 8.6 分。Nuclei 在解析與執行 JavaScript 範本時,會把範本內容交給內嵌的 Goja 引擎運算,而 Goja 存在堆積記憶體越界寫入的錯誤,攻擊者可以精心構造 JavaScript 使其在運算過程中破壞堆積結構,進而在主機上取得原生程式碼執行。由於 Nuclei 對未簽署範本預設就會執行,一次普通掃描載入到惡意範本即可觸發。
DAST簽章繞過編號 CVE-2026-76802,CVSS 為 4.7 分,發生在啟用 -dast 模式時。當範本同時包含 fuzzing: 與 code: 區塊,範本載入器會切換到 DAST 專用的處理路徑,而這條路徑遺漏了一般載入流程中原本存在的未簽署程式碼範本簽章檢查。結果是攻擊者不需要 -code 旗標、也不需要通過範本簽章,就能讓 DAST 掃描執行任意 shell 指令。
次要弱點其餘三個弱點嚴重度較低,但同樣繞過了 Nuclei 原本設計的沙盒限制,分別出在 MySQL 用戶端、工作流程載入器與範本表達式引擎。
MySQL沙盒繞過(CVE-2026-76803,CVSS 5.3)出在 JavaScript 版 MySQL 用戶端沒有正確檢查連線字串中的 allowAllFiles 參數,惡意 MySQL 伺服器可藉此下達 LOAD DATA LOCAL INFILE 指令,讀取掃描主機上的任意檔案,繞過原本應限制在範本目錄內的 -allow-local-file-access 保護。
工作流程檔案閘門繞過(CVE-2026-76804,CVSS 5.5)是工作流程載入器沒有檢查 -file 旗標是否啟用,只要工作流程引用了檔案協定範本,即使旗標未開也會照樣執行並讀取本機檔案。
環境變數外洩(CVE-2026-76805,CVSS 5.3)源自表達式替換被重複執行兩次,多步驟範本中萃取出的回應資料會在後續模糊測試步驟中被重新當成 DSL 語法解析,導致啟用 -env-vars 時環境變數等敏感資訊遭外洩。
受影響版本
| GHSA | CVE | 受影響版本 | CVSS | 修補版本 |
|---|---|---|---|---|
| GHSA-vxg7-f2jj-jmqm | CVE-2026-76819 | 3.0.0 至 3.9.x | 8.6 | 3.10.0 |
| GHSA-jpf4-98qj-qr67 | CVE-2026-76802 | 3.0.0 至 <3.10.0 | 4.7 | 3.10.0 |
| GHSA-xhmx-w2j4-rw3q | CVE-2026-76803 | 3.0.0 至 3.9.x | 5.3 | 3.10.0 |
| GHSA-qgw5-7j4f-fg97 | CVE-2026-76804 | 3.0.0 至 3.9.x | 5.5 | 3.10.0 |
| GHSA-jpvm-9frm-hjcq | CVE-2026-76805 | 3.0.0 至 <3.10.0 | 5.3 | 3.10.0 |
修補與緩解
立即升級是唯一能一次解決全部五個弱點的做法,所有受影響版本都應更新到 3.10.0 以上,因為五個 GHSA 全部在同一版本修補完成。使用 Nuclei 掃描不受信任目標、或載入來自第三方社群範本庫的使用者風險最高,這批範本可能挾帶惡意 JavaScript 或工作流程,觸發堆積越界寫入或檔案讀取。
旗標暫時管控暫時無法升級的團隊應停用非必要的高風險旗標並限制範本來源。避免對來源不明的目標開啟 -dast,尤其是同時含有 fuzzing: 與 code: 區塊的範本;不要啟用 -env-vars,除非確認掃描目標與範本皆可信;若啟用 -allow-local-file-access 或 -file,應搭配白名單只執行官方簽署範本。
範本來源控管對企業內部 CI 或紅隊自動化流程而言,建議把範本來源限制在官方 nuclei-templates 倉庫並定期同步,任何自訂或外部範本在導入前都應先做程式碼審查。由於 Goja 弱點的觸發不需要任何特殊旗標,僅執行一次含惡意 JavaScript 的範本掃描就足以造成主機淪陷,這使得升級到 3.10.0 成為所有 Nuclei 使用者的最優先項目。
原始來源:GHSA-vxg7-f2jj-jmqm、GHSA-jpf4-98qj-qr67、GHSA-xhmx-w2j4-rw3q、GHSA-qgw5-7j4f-fg97、GHSA-jpvm-9frm-hjcq