2026年7月2日 2 分钟阅读

AI 编码 Agent 装个库都带漏洞?用 deptrust 给依赖上一道安检门

tinyash 0 条评论

当你愉快地用 Claude Code 或 Cursor 写代码时,Agent 说”装个 lodash 4.17.20″,你点头确认——然后第二天的安全扫描报告上就多了两个高危漏洞。这不是 Agent 不努力,而是它根本不知道哪个版本是安全的。

AI 编程 Agent 的优势在于快速迭代,但这恰恰也是它的阿喀琉斯之踵:它倾向于安装”最新能用的版本”,而不是”最安全的版本”。一个依赖还好,当 Agent 一口气装了十几个包时,你面临的可能是成堆的 CVE。deptrust 就是为解决这个问题而生的——它像一道安检门,在 Agent 装包之前先过一遍筛子。

一个真实痛点

我用 Cursor 写过一个 Express 后端项目,Agent 在半小时内装了 20 多个 npm 包。事后用 npm audit 一查,3 个高危、5 个中危。逐个手动排查版本、升级、测试,又花了一个小时——Agent 省下的时间全花在擦屁股上了。

deptrust 的逻辑很简单:在 Agent 推荐或安装某个包之前,先跑一遍安全检查。它通过 MCP 协议与 Claude Code、Codex、Cursor 集成,Agent 调用依赖时自动触发扫描,返回类似”lodash@4.17.20 有 2 个已知漏洞,建议用 4.17.21″的建议。

安装与集成

deptrust 是用 Go 写的,但安装不需要装 Go。最快捷的方式是 npx:

npx @clidey/deptrust install --all

这条命令会做三件事:安装 deptrust 二进制、注册 Codex MCP 集成(如果你装了 Codex CLI)、注册 Claude Code MCP 集成。一行命令搞定。

Homebrew 用户也可以走 tap 安装:

brew tap clidey/tap
brew install deptrust

Go 用户还能直接 go install

go install github.com/clidey/deptrust/cmd/deptrust@latest

集成到 Claude Code

如果用的是 Claude Code,手动配置 MCP 也很简单:

claude mcp add --transport stdio deptrust -- /path/to/deptrust mcp

然后在 claude.json 里写入:

{
  "mcpServers": {
    "deptrust": {
      "command": "/path/to/deptrust",
      "args": ["mcp"]
    }
  }
}

配置好后,每次 Claude Code 准备安装或升级依赖时,deptrust 的 MCP 服务会自动拦截检查。

三个核心命令

deptrust 的 CLI 设计很克制,只有三个核心子命令,配合 14 个生态系统的包管理。

check:检查指定版本的漏洞

deptrust check npm lodash 4.17.20

输出非常直观:

npm lodash@4.17.20: 2 known vulnerabilities found
recommendation: block
risk_score: 80

风险评分 0-100,80 分意味着”别用”。支持 --json 参数获取完整 JSON 输出,包含 CVE ID、严重等级、修复版本等详细信息:

deptrust check --json pypi requests 2.25.0

支持的生态系统覆盖面相当广:

生态示例命令
npmdeptrust check npm lodash 4.17.20
PyPIdeptrust check pypi requests latest
Cargodeptrust check cargo serde latest
Godeptrust check go golang.org/x/crypto latest
RubyGemsdeptrust check rubygems rails latest
NuGetdeptrust check nuget Newtonsoft.Json latest
Mavendeptrust check maven org.apache.logging.log4j:log4j-core latest
GitHub Actionsdeptrust check github-actions actions/checkout v7.0.0

suggest:推荐最安全的版本

deptrust suggest npm lodash

如果最新版本有漏洞,suggest 会自动回退查找,直到找到漏洞最少的可接受版本。这个过程对你完全透明,Agent 只需要拿到推荐结果。

compare:对比两个版本的风险差异

deptrust compare npm lodash 4.17.20 4.17.21

输出:

lodash 4.17.20 -> 4.17.21 improves risk: score 80 to 0.
recommendation: allow
next_action: upgrade_to_target

这在重构或升级依赖时特别有用——你可以让 Agent 明确知道某个版本升级是否真的提升了安全性。

MCP 模式下的工作流程

deptrust 的 MCP 服务提供了三个工具:check_packagesuggest_safe_versioncompare_versions

当一个 AI Agent 准备安装依赖时,流程大致是这样:

  1. Agent 调用 check_package,传入生态名和包名
  2. deptrust 并行查询 OSV 和 GitHub Advisory Database
  3. 返回精简的 MCP 结果(只含关键字段,避免拉取完整的 advisory body 撑爆上下文)
  4. 如果版本不安全,Agent 调用 suggest_safe_version 获取替代版本
  5. 确定安全版本后,Agent 才执行安装

MCP 模式下返回的 JSON 还包含一个 full_response_command 字段,告诉 Agent 如果需要看完整详情,可以直接运行 deptrust check --json ... 获取。

风险信号不仅仅是 CVE

deptrust 不只是查 CVE 数据库。它还发出一些非 CVE 的风险信号。比如,一个包版本发布时间在 72 小时以内,deptrust 会标记为 review——让 Agent 不会盲目安装刚发布几小时的全新版本,避免供应链投毒风险。

另一个贴心设计是 advisory coverage 字段。当 deptrust 无法从某个提供商获取数据时,它不会静默返回”安全”,而是明确告诉你 partialerror,避免你基于不完整信息做出错误判断。

写在最后

AI 编程 Agent 的编码速度越来越快,但速度的另一面是安全风险在指数级放大。deptrust 做的事情很简单——在”装”这个动作之前加一道安检,但它解决的是一大类 Agent 安全问题:依赖供应链的自动化防护

如果你的团队在用 Claude Code、Codex 或 Cursor,装一个 deptrust 的成本几乎为零,但它能帮你避免第二天上班收到安全告警的尴尬。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。