dsh-dep-vuln-scan:DeepSeek Harness 原生依赖漏洞扫描插件

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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜