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