Dependabot

概述

Dependabot 使用 GitHub Actions 和独立环境来运行检查。有几个公共资源可以帮助审查内部实现细节:

代码执行

Dependabot 能够从清单文件中收集依赖信息,如 setup.py.gemspec,这些文件可能被滥用来执行任意代码。具有 package-ecosystembundlermixpip 的包管理器可能被滥用,在版本更新过程中在清单文件中执行外部代码。因此,如果您能够篡改清单文件,可以在 Dependabot 运行时执行任意代码。

查看如何滥用清单文件以获得代码执行的信息,请参阅参数注入页面

Dependabot 允许开发者通过将 insecure-external-code-execution 设置为 deny 来防止代码执行。此外,当在更新配置中使用 registries 设置时,Dependabot 会自动将 insecure-external-code-execution 设置为 deny 并防止外部代码执行。然而,这可能导致版本更新失败,因此开发者可以通过将 insecure-external-code-execution 设置为 allow 来覆盖此行为并允许代码执行。

私有仓库的发布说明和提交信息泄露

如果 Dependabot 检测到未更新的依赖,它将创建一个 PR 来提升这些依赖的版本。Dependabot 添加有关更改的附加信息,其中可能包含发布说明和带有消息的提交列表。您可以在以下屏幕截图中找到此类 PR 的示例:

然而,Dependabot 支持私有依赖,它也会将这些数据添加到私有依赖的 PR 中。因此,如果公共项目有私有依赖,Dependabot 将泄露这些项目的发布说明和提交。

参考资料

最后更新于