cairo-vulnerability-scanner
作者 trailofbitscairo-vulnerability-scanner 會掃描 Cairo/StarkNet 智能合約中的六類重大問題,包括 felt252 算術錯誤、L1-L2 訊息傳遞缺陷、地址轉換錯誤與簽章重放等。若你要進行 StarkNet 合約的 Security Audit 審查,這個 cairo-vulnerability-scanner skill 很適合使用。
此 skill 得分 78/100,對需要 Cairo/StarkNet 專屬稽核流程的目錄使用者來說,是相當紮實的候選項。這個 repository 提供了足夠具體的漏洞樣式與使用提示,能幫助 agent 以較少猜測完成觸發與套用,比通用安全提示更實用;不過,若能再補強上手與執行指引,會更完整。
- 針對 StarkNet/Cairo 合約、L1-L2 bridge、簽章驗證與 L1 handlers 的明確稽核情境,讓系統很容易正確觸發。
- 內容篇幅充足且結構清楚,列出 6 種命名漏洞樣式,並搭配清單式偵測指引,能給 agent 直接可用的操作依據。
- repository 證據包含 code fences、repo/file 參照,以及專門整理漏洞樣式的 resources 檔案,提升了操作清晰度與可信度。
- 沒有安裝指令或設定步驟,因此目錄使用者必須自行推斷如何啟用或整合這個 skill。
- 支援素材只有一個資源檔,且沒有 scripts/tests,遇到邊界情境或需要大量自動化時,流程可能不夠完整。
cairo-vulnerability-scanner 概覽
cairo-vulnerability-scanner 的功能
cairo-vulnerability-scanner skill 能幫你檢視 Cairo/StarkNet 合約中那些在通用 Solidity 式稽核裡很容易被漏掉的平台特定安全問題。它聚焦六種關鍵模式,包括 felt252 算術錯誤、L1-L2 訊息風險、位址轉換問題,以及簽章重放。
適合誰使用
如果你正在為 StarkNet 應用、橋接程式碼,或 Cairo 合約邏輯做 Security Audit,就適合使用 cairo-vulnerability-scanner skill。當你已經拿到合約檔案,並希望在深入人工分析前先做一輪有針對性的漏洞初篩時,它最有用。
它有什麼不同
它的價值不只是「掃漏洞」,而是「掃 Cairo 特有的漏洞」。這點很重要,因為這個生態系裡很多失誤都來自型別選擇、跨層假設與處理器邏輯,而不是明顯的重入或通用存取控制問題。當你想快速取得一份針對已知 Cairo 風險模式的結構化檢查清單時,這個 skill 特別強。
如何使用 cairo-vulnerability-scanner skill
安裝並對準正確的範圍
先使用 Trail of Bits skills 套件中的 cairo-vulnerability-scanner install 流程,再把它套用到你真正想要檢視的 repository 或合約子集合。主要輸入應該是 Cairo 原始碼,尤其是 .cairo 檔案,外加任何與 StarkNet 行為相關的 bridge、handler 或簽章驗證模組。
給它安全稽核提示,不要只丟模糊任務
一個好的提示會明確寫出合約區域、信任邊界與關切點。例如:「稽核這個 Cairo StarkNet 模組的 L1 handler 誤用、felt252 算術問題,以及簽章重放風險。請聚焦於外部可達函式與訊息驗證。」這比「檢查有沒有漏洞」更有效,因為它會把掃描導向那六種預期模式。
先讀這些檔案
先看 SKILL.md,了解預期流程;再檢查 resources/VULNERABILITY_PATTERNS.md,掌握具體偵測邏輯與緩解註記。如果 repository 只有一個支援檔案,那就在跑這個 skill 之前先讀它。
採用窄範圍工作流程
先從合約入口點開始:外部函式、建構子,以及 #[l1_handler] 函式。接著檢查餘額相關算術、felt252、ContractAddress 和 EthAddress 之間的轉換,以及任何接收合約外部訊息或簽章的邏輯。這個順序正是 cairo-vulnerability-scanner 設計來快速找出高價值問題的方式。
cairo-vulnerability-scanner skill FAQ
這適用於所有智慧合約嗎?
不適用。cairo-vulnerability-scanner skill 是給 Cairo 與 StarkNet 合約用的,不是通用的 EVM 稽核。如果你的程式碼庫主要是 Solidity 或離線 Rust 服務,這個 skill 的價值就很有限。
我需要先很熟 Cairo 嗎?
具備基本熟悉度會更好,但對剛入門、需要一個有引導的 Security Audit 起點的人來說,這個 skill 仍然很實用。當你已經知道應用流程,但需要協助檢查 Cairo 特有的失敗模式時,它尤其有幫助。
這和一般提示有什麼不同?
一般提示常只能找出表層問題。cairo-vulnerability-scanner skill 會提供一個可重複的審查框架,專門對準已知的 StarkNet 弱點,這能降低漏看案例的機率,也讓不同合約之間的稽核輸出更容易比較。
什麼時候不該用它?
不要把它當成正式上線前的唯一檢查方法,也不要在 repository 裡根本沒有 Cairo 合約時使用。它是聚焦式掃描器,不是完整的形式化驗證,也不是威脅建模的替代品。
如何改善 cairo-vulnerability-scanner skill
提供會改變稽核結果的合約背景
最好的輸入會說明合約角色、受保護的資產,以及跨層路徑。例如:「這個 bridge deposit 合約會接收 L1 訊息並在 StarkNet 上鑄造;請檢查重放、位址轉換與 handler 驗證。」這比只列出檔案強得多,因為它會告訴 skill 哪些漏洞模式最重要。
具體指出資料型別與信任假設
如果你把會驅動 Cairo 錯誤的型別與不變條件一併寫上,結果通常會更好:felt252 運算、balance storage、u256 轉換、ContractAddress 處理,以及任何簽章方案。如果合約預期 nonce 單調遞增、訊息唯一,或金額有上限,也要明白說出來。
針對初步結果反覆迭代
如果第一輪回傳可疑的算術或訊息處理結果,就要求第二輪只深入那些位置,並且請它找出可利用路徑,而不只是列觀察。例如:「檢視這兩個函式是否可被重放或下溢利用,並提出最小修補。」這通常比不變地重跑整個掃描,更能產生可直接行動的 cairo-vulnerability-scanner usage 結果。
提供正確的 repo 切片
把相關的 .cairo 檔案獨立出來,通常會比把整個混合語言 monorepo 一起丟進去得到更好的輸出。對 cairo-vulnerability-scanner for Security Audit 而言,訊號最高的輸入是合約檔、handler 模組,以及任何會轉換位址、簽章或跨層 payload 的輔助程式碼。
