GitHub推出Dependabot可达性分析公开预览:为JavaScript和TypeScript警报标注调用路径

Published · AI Daily — AI-assisted deep research, methodology & disclosure

GitHub 于 2026 年 10 月 28 日发布了 Dependabot 警报可达性分析的公开预览版。它适用于 JavaScript 和 TypeScript,并给每条未关闭的警报增加一个结论:仓库中的代码是否存在通向依赖中有漏洞函数的调用路径。GitHub 把这个结论定位为排序工作的额外背景,应与严重程度、EPSS 评分、生产环境背景以及团队自己的了解一起使用。

GitHub 于 2026 年 10 月 28 日发布了 Dependabot 警报可达性分析的公开预览版。它适用于 JavaScript 和 TypeScript,并给每条未关闭的警报增加一个结论:仓库中的代码是否存在通向依赖中有漏洞函数的调用路径。GitHub 把这个结论定位为排序工作的额外背景,应与严重程度、EPSS 评分、生产环境背景以及团队自己的了解一起使用。它不会关闭或忽略任何警报。

机制有三部分。Dependabot 在托管的 GitHub Actions 工作流中替用户运行分析,无需安装或维护任何东西。对每条安全公告,经过整理的数据会指出受影响软件包中的漏洞函数。随后 CodeQL 在仓库及其依赖上构建调用图,在其中查找从用户代码到这些函数的路径。证据会显示在警报上,例如一条从仓库中某个文件经过某个软件包通向漏洞函数的调用路径。

每条未关闭的警报会得到四种结论之一。“可达”表示代码至少有一条通向漏洞函数的调用路径。“可能可达”表示分析无法判断该函数是否被调用,GitHub 说应按可达处理这些警报。“不可达”表示分析已完成,没有找到调用路径,所以警报优先级较低,但并未关闭。“可达性不可用”表示警报无法分析,应照常分诊。不可达与可能可达的区别很重要,因为只有前者是完成分析后的否定结果。

预览版有明确的限制。它免费:不需要 GitHub Advanced Security 许可证,所用的 Actions 分钟数也不计费。它面向 GitHub Enterprise Cloud,包括带数据驻留的版本。它覆盖带有 npm、Yarn 或 pnpm 锁文件的 JavaScript 和 TypeScript 仓库,只在 GitHub 托管的运行器上运行,不支持自托管运行器。部分单体仓库,以及清单文件分布在多个目录的仓库,可能不受支持。如果分析超过三小时,部分结果可能显示“可达性不可用”。覆盖范围包括 GitHub 安全公告数据库中所有经 GitHub 审核、会触发 Dependabot 警报的 JavaScript 公告。

该功能默认关闭。管理员可以通过企业或组织级的自定义安全配置一次为多个仓库开启,也可以在单个仓库的“设置”里,“高级安全”下的 Dependabot 部分开启。Dependabot 警报必须已经开启。首次扫描立即开始,可能需要几分钟到几小时,之后只要仓库有未关闭的 Dependabot 警报,就每天重新扫描。结论显示在警报页面,可以筛选和排序,Dependabot 警报的 REST API 也提供同样的信号,供其他工具和智能体使用。

页面强调,可达性应与其他信号一起使用:严重程度、EPSS 评分、生产环境背景和团队对自己应用的了解。EPSS 是预测漏洞被利用可能性的评分体系。把“可达”的警报排在前面、“不可达”的排在后面,是一种分诊策略,并不是对不可达警报的豁免;页面也明确说“可能可达”应按可达处理,“可达性不可用”则照常分诊。示例截图显示的调用路径从 server.js 经过 moment 软件包到达漏洞函数,说明证据以具体路径的形式呈现,审查者可以顺着路径核对,而不必只相信一个标签。还要注意,可达性分析的前提是仓库里有 npm、Yarn 或 pnpm 的锁文件,分析超过三小时后,部分结果可能显示“可达性不可用”,所以大型仓库得到“不可用”并不意外,应按平常方式分诊。扫描会随代码和公告的变化而每天更新,所以同一条警报的结论今天和下周可能不同。

关于覆盖面,页面写明:范围是 GitHub Advisory Database 中经 GitHub 审核、会触发 Dependabot 警报的全部 JavaScript 公告;分析在 GitHub 托管运行器上运行,与 Dependabot 更新一样,即使没有开启 GitHub Actions 也会运行;预览期间不收取 Actions 分钟费。对企业来说,这意味着可以先在一个组织试用而不产生额外账单,但预览结束后如何计费,页面没有说明。

可达性是帮助排序的辅助手段,不是安全证明。静态分析找到调用路径,只说明代码能到达该函数,不说明攻击者能够利用它。反过来也一样:页面没有给出准确率数字,所以“不可达”只是优先级较低的信号,不是保证。预览版排除了大多数套餐,也只支持两种语言,所以许多团队暂时看不到结论。对使用 Enterprise Cloud 并编写 JavaScript 代码的团队来说,它提供了一种给冗长警报列表排序的方法,每一条都附有证据。

Sources

FAQ

可达性分析给警报标注哪四种结论?

“可达”表示代码至少有一条通向漏洞函数的调用路径;“可能可达”表示分析无法判断,应按可达处理;“不可达”表示分析完成但未找到路径,优先级较低;“可达性不可用”表示无法分析,照常分诊。这些结论不会关闭或忽略警报。

预览期有哪些使用限制?

免费,无需 Advanced Security 许可证,仅限 Enterprise Cloud,只支持带 npm、Yarn 或 pnpm 锁文件的 JavaScript 和 TypeScript,用托管运行器。部分单体仓库可能不支持,超三小时可能“可达性不可用”。

怎样开启并多久扫描一次?

默认关闭。可用企业或组织的自定义安全配置批量开启,也可在单个仓库的设置里,高级安全下的 Dependabot 部分开启,且必须先开启 Dependabot 警报。首次扫描立即开始,要几分钟到几小时,之后只要有未关闭警报就每天重扫。