DSH(DeepSeek Harness)的理念是「一切皆插件」。在構建智能體或管理項目依賴時,檢查鎖文件中的漏洞是常見需求。dsh-dep-vuln-scan 是一個原生工具,解決了手動查詢 OSV API 或在本地運行 npm audit / pip-audit 的繁瑣,直接集成到 DSH 工作流中。
這是一個 DSH(DeepSeek Harness)原生依賴漏洞掃描工具。它讀取工作區內的項目鎖文件,通過 OSV 免費接口(api.osv.dev,無需 key)批量查詢漏洞,輸出包含包名、當前版本、漏洞 ID(CVE/GHSA)、摘要、CVSS、修復版本的表格及彙總。修復命令通過 presentationMeta 持久化到 tool/result,支持回放複製。該工具由 988hj7tczd-oss 維護,採用 MIT 許可證。
核心功能¶
- 生態支持:覆蓋 npm, PyPI, Go, crates.io, Maven, NuGet, RubyGems。
- 數據源:使用 OSV 的
POST /v1/querybatch接口,免費且無需 Key。 - 確認口徑:僅展示確認存在的漏洞,通過帶版本過濾的 OSV 查詢和本地區間複覈(
introduced ≤ version < fixed)。 - 修復信息:取 affected ranges 中最早 fixed 的版本,並生成修復命令建議。
- 嚴重度:展示 CVSSv3 數值(Critical/High/Medium/Low),無數值時使用 OSV 的定性關鍵詞。
- 掃描模式:支持
fast(默認,僅根鎖文件,併發 4)和full(遞歸子目錄,併發 16,生成 SBOM 摘要)。 - 健壯性:採用分塊查詢(250/批)、併發池、30s 超時、2 次重試及 429 錯誤處理。
- 持久化:通過
presentationMeta投影報告至tool/result.meta。
安裝與啓用¶
作爲 DSH 插件 bundle 安裝進 profile:
dsh plugin --profile demo add ./dsh-dep-vuln-scan
安裝後,模型可直接調用工具。
典型用法¶
工具接口定義如下:
dep_vuln_scan(path?: string, ecosystems?: string[], effort?: 'fast'|'full')
path:項目目錄或單個鎖文件路徑。省略則掃描工作區根目錄的鎖文件。ecosystems:過濾包類型,如['npm', 'pypi']。effort:默認fast;full模式會遞歸發現並生成 SBOM 摘要。
實現細節¶
該插件模塊符合 Cordis 規範。核心文件包括 index.ts(裝配與系統提示詞註冊)、tools/dep-scan.ts(工具定義與編排)、lockfile-parsers.ts(鎖文件解析)、osv-client.ts(網絡請求與重試邏輯)以及 report.ts(報告組裝與持久化)。
限制與注意事項¶
- 解析限制:
pnpm-lock.yaml和yarn.lock採用行級解析,跳過 peer 後綴和 Yarn Berry 特殊標記;requirements.txt僅支持精確==版本查詢;pom.xml/gradle僅識別字面量版本,忽略${property}佔位符。 - 掃描上限:遞歸深度限制爲 8,單個項目掃描鎖文件上限爲 200 個。
- 權限:該工具爲只讀操作,不會修改項目文件。修復命令僅作爲建議展示,需用戶確認後自行執行。
License¶
MIT
Source: https://github.com/988hj7tczd-oss/dsh-dep-vuln-scan