Agent Skills
返回列表
🔒

NPM 包漏洞扫描器

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/npm-package-vulnerability-scanner。

技能介绍

npm 依赖中的安全盲区

当项目依赖的 npm 包被报告存在已知漏洞时,团队往往面临两个问题:一是漏洞信息分散在多个来源,npm audit 的输出与 GitHub Advisory Database(GHSA)中的严重等级口径不一致;二是手动排查 package-lock.json 或 yarn.lock 中的传递依赖极其耗时,容易遗漏被多层嵌套引入的高危包。

扫描机制与数据链路

该技能通过两条数据源交叉验证漏洞信息:

  • npm audit JSON API:直接读取当前项目的锁文件,返回 CVE 编号、受影响版本范围以及可达路径;
  • OSV.dev REST API(api.osv.dev/v1/query):提供跨生态系统的漏洞数据,弥补 npm 原生数据库覆盖不全的问题;
  • 将两份结果与 GitHub Advisory Database 对齐,统一 severity 评分(如 CRITICAL、HIGH),避免因数据源差异导致的误报或漏报。

典型工作流为:解析锁文件 → 提取依赖树 → 并行查询两个 API → 按 GHSA 严重等级排序输出 → 生成可操作的修复建议。

适用边界与注意点

  • 该扫描器仅覆盖 已公开且被收录 的漏洞,无法检测 0-day 或未上报的安全问题;
  • 依赖 api.osv.dev 与 GitHub Advisory Database 的网络可达性,内网环境需配置代理或镜像;
  • 对于 monorepo 或多锁文件项目,需分别对每个 package-lock.json 运行扫描,结果不会自动聚合;
  • 建议将扫描结果接入 CI/CD 流水线,作为 npm ci 之后的门禁步骤,而不是依赖定期的人工检查。

使用场景

  • 提交代码前,需要快速确认 `package-lock.json` 中是否有被标记为 `CRITICAL` 的已知漏洞,以决定是否允许合入主干。
  • CI 流水线中,在 `npm ci` 之后自动运行扫描,对新增的高危依赖阻断发布,避免带漏洞版本进入生产环境。
  • 项目依赖树很深,想定位某个高危包是通过哪条传递路径被引入的,并评估修复成本。
  • 团队同时参考 npm audit 和 OSV.dev 的报告,需要统一严重等级口径,避免同一条漏洞在不同工具中评分不一致。

适合人员

  • Node.js 后端工程师:在代码评审阶段需要快速判断依赖升级是否引入了新的高危漏洞,决定是否放行本次提交。
  • DevOps 工程师:负责把漏洞扫描接入 CI/CD 流水线,希望在构建阶段就拦截不安全依赖,而不是等上线后补救。
  • 开源项目维护者:需要定期排查传递依赖中的已知漏洞,在不破坏兼容性的前提下决定升级或替换方案。