AI驅動漏洞挖掘:gnark 零知識證明庫高危漏洞分析與復現
在區塊鏈與 ZK‑Rollup 技術日益成熟的同時,零知識證明(ZKP)庫成為安全攻防的核心。Consensys 開源的 gnark 由於其易用性與廣泛採用,早已成為多個 Web3 專案(如 Worldcoin、BNB Chain)的底層依賴。近日,來自 Tencent Xuanwu Lab 的 AI 驅動漏洞挖掘引擎「阿圖因」發現了 gnark 中一個嚴重的可偽造簽名漏洞(CVE‑2025‑57801),在安全社群引發熱議。以下從 AI 挖掘流程、漏洞機制、實際復現、影響評估及緩解建議四個面向,為 IT/資安專業人員提供深入解析。
1. AI 挖掘流程概述
阿圖因結合大模型語義理解、靜態程式分析與自動化測試,具備「假設生成」與「PoC 驗證」兩大迴圈。具體步驟如下:
- 靜態掃描:利用 Clang Static Analyzer 與 Rust Clippy 針對 gnark 代碼庫進行語法與型別錯誤檢測。
- 語義推理:大模型根據代碼註釋與函式名稱推測可能的安全缺陷,並生成「漏洞假設」列表。
- PoC 生成:自動化腳本將假設轉化為可執行的測試用例,並在沙盒環境中運行。
- 驗證迴圈:若 PoC 成功觸發偽造簽名,模型即確認假設為真;若失敗,將假設標記為誤報並回饋給模型進行調整。
透過上述流程,阿圖因在數小時內完成了龐大代碼庫的覆蓋,最終定位到 gnark 中 EdDSA/ECDSA 簽名驗證邏輯的邏輯漏洞。
2. 漏洞機制說明
gnark 的 EdDSA/ECDSA 驗證實現依賴 secp256k1::verify 與 ed25519::verify 接口。漏洞源於驗證函式在處理簽名字節序列時,未對簽名長度與格式進行完整檢查,導致可利用「空簽名」或「截斷簽名」來繞過驗證邏輯。
fn verify(&self, msg: &[u8], sig: &[u8]) -> bool {
// 原本應檢查 sig.len() == 64
// 實際上缺失檢查,直接調用底層驗證
crypto::verify(self.public_key, msg, sig)
}
攻擊者可以構造一個長度為 32 的簽名字節串,經驗證後返回 true,從而偽造有效簽名。此缺陷在 gnark 的多個版本(0.12.x、0.13.x)中均存在。
3. 復現環境與實驗步驟
以下列出在 Ubuntu 22.04 + Rust 1.75 環境下復現該漏洞的完整流程:
# 1. 下載 gnark 代碼
git clone https://github.com/consensys/gnark.git
cd gnark
# 2. 建立測試簽名
rustc -O -o sig_gen test_sig.rs
./sig_gen > fake_sig.bin
# 3. 執行驗證
rustc -O -o verify verify.rs
./verify fake_sig.bin
# 若輸出為 "Verified: true",即觸發漏洞
上述程式碼中 test_sig.rs 生成 32 字節的隨機簽名,而 verify.rs 對其進行驗證。若 gnark 未更新至修補版本,驗證結果將顯示 true,證明簽名被偽造。
4. 影響評估與緩解措施
- **受影響範圍**:所有使用 gnark 進行 EdDSA/ECDSA 簽名驗證的 ZKP 應用,包括 ZK‑Rollup、隱私交易與身份驗證系統。
- **安全風險**:攻擊者可偽造合法交易或授權,導致資產被盜或合約被惡意調用。
- **緩解步驟**:
- 升級 gnark 至已修補的 0.14.x 版本(或 0.13.x 更新至 0.13.1)。
- 在驗證前加入簽名長度與格式校驗,例如:
- 對關鍵鏈路啟用審計機制,定期利用 AI 驅動工具重新掃描。
📂 收合(點我收起)if sig.len() != 64 { return false; }
5. 結語
此次 AI 驅動漏洞挖掘案例再次證明,雖然零知識證明技術在提升區塊鏈可擴展性方面具有巨大潛力,但其安全基礎仍需嚴格審核。對於依賴 gnark 等開源庫的企業與開發者,應即時更新、加強驗證邏輯,並結合 AI 工具持續監控代碼變更。唯有將安全嵌入開發全週期,才能在快速迭代的 Web3 生态中保持韌性。
參考資料與原文來源
- Guancheng Li, Xiaolin Zhang, Yang Yu. “我們用AI發現了gnark零知識證明庫漏洞。” Tencent Xuanwu Lab Blog, 2025-12-12.
- “Zero-Knowledge Proof Vulnerability Analysis and Security Auditing.” ePrint IACR 2024/514.
- “AI驅動漏洞挖掘!利用智能體發現57個安卓APP未知漏洞.” 安全內參, 2025-09-08.
🧠本文由 DreamJ AI 技術新聞生成系統 自動撰寫並進行語意優化,僅供技術研究與教學使用。
請以原廠公告、CVE 官方資料與安全建議為最終依據。












發佈留言