NPM 包漏洞应急手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/npm-package-vulnerability-runbook
技能介绍
解决什么问题
安全通告到达时,npm audit 给出的报告往往令人沮丧:上百条路径、大量 extraneous、devDependencies 的告警,以及同一个漏洞在不同传递依赖里被重复计数。工程团队真正想知道的是:这个漏洞为什么进入了 lockfile、从哪条依赖路径注入、先升级谁才能消除它,以及能不能先接受风险而不是立刻改代码。
现实里,排查经常从「跑一次 npm audit」开始,却卡在几个环节:
- 报告把生产依赖与开发依赖混在一起,无法快速判断影响面。
- 同一漏洞多路径时,缺少依赖树分析,容易做出错误的升级决策。
- 升级某个包后,
npm audit仍报同一漏洞,因为问题其实在上游 peer/transitive 依赖。
技能如何工作
这个技能的价值在于把「读报告」变成「按证据分诊」。它以两个公开数据源为基础:
- npm Audit API:读取锁文件生成的审计报告,提供漏洞所在包、严重级别与依赖路径。
- OSV.dev API:补充漏洞的元数据与影响范围,帮助判断通告的真实性和依赖面。
当执行任务时,它按以下关键步骤工作:
- 收集证据:读取项目的
package.json与锁文件,调用npm Audit API获取结构化告警,并将结果按包名聚合,避免重复路径干扰。 - 补充上下文:用 OSV.dev 查询漏洞详情,将 npm 报告里的条目与 OSV 中的受影响版本区间对应起来。
- 生成可执行的 runbook:按漏洞包生成分步修复说明,给出对应的补丁命令和建议目标版本,并解释该命令作用在哪一层依赖。
- 分析依赖树路径:展示漏洞从根包到受影响模块的传递路径,帮助判断这是直接依赖问题还是上游依赖问题。
适用边界与注意点
这个技能适合 Node.js 项目漏洞的初筛和定位。它能把 npm audit 的原始报告转换为带证据的应急文档,但有几个边界需要清楚:
- 它依赖
npm Audit API与 OSV.dev 的数据,如果上游源延迟同步,通告可能未被覆盖。 - 它输出的是修复指引,不会自动升级依赖或修改锁文件。升级决策仍应由维护者确认兼容性。
npm audit fix可能引入破坏性变更,尤其是 major 版本升级。- 项目若使用私有 registry、npm 替代方案或复杂的 monorepo,审计路径需要额外确认。
- 高危漏洞确认后,补丁只是开始,还需要检查运行环境是否存在暴露面。
使用场景
- 线上 Node.js 服务收到漏洞通告,需要运行审计并定位受影响的依赖路径
- CI 构建失败因 npm audit 告警,需要快速生成包含补丁命令的分步修复说明
- 项目依赖复杂且传递依赖众多,需要分析根因确定先升级哪个包
- 安全复盘时需要对比审计报告与 OSV.dev 数据以确认漏洞影响范围
适合人员
- 后端工程师:需要定位 Node.js 项目中漏洞来源并给出升级建议
- DevOps 工程师:在 CI 流程中自动化处理 npm audit 告警并生成修复文档
- 安全响应人员:快速确认漏洞影响范围并输出可执行的修复步骤
- 技术负责人:需要审查依赖升级方案并评估对现有项目的影响