GitHub Actions 处理程序中的一个漏洞导致 Nixpkgs 中的包受到威胁。

GitHub Actions 处理程序存在漏洞,该处理程序在向 NixOS 发行版和 Nix 软件包管理器生态系统中使用的 Nixpkgs 软件包存储库提交拉取请求时自动调用。该漏洞允许未经授权的用户提取一个令牌,该令牌授予对 Nixpkgs 中托管的所有软件包的源代码的读写访问权限。该令牌允许通过项目的 Git 存储库直接修改任何软件包,从而绕过审核和批准流程。

去年 10 月,安全研究人员在 NixCon 大会上演示了入侵 Nixpkgs 并将自定义代码注入任何软件包的能力,并立即在项目基础设施中进行了修补。然而,攻击细节直到一年后才披露。该问题与 Nixpkgs GitHub 存储库中使用 GitHub Actions 处理程序有关,这些处理程序绑定到“pull_request_target”事件,并在新的拉取请求时执行自动检查。

与“pull_request”事件不同,“pull_request_target”中的处理程序被授予对构建环境的读/写访问权限,因此在处理拉取请求中传递的数据时需要格外小心。绑定到“pull_request_target”的处理程序之一通过构建并调用 codeowners-validator 实用程序来验证拉取请求中提供的“OWNERS”文件:步骤:— 使用:actions/checkout@eef61447b9ff4aafe5dcd4e0bbf 使用:ref:refs/pull/$/merge 路径:pr — 运行:nix-build base/ci -A codeownersValidator — 运行:result/bin/codeowners-validator 环境:OWNERS_FILE:pr/ci/OWNERS

问题在于,如果 OWNERS 文件格式不正确,codeowners-validator 实用程序会将格式错误的字符串内容输出到标准的、可公开访问的日志中。攻击方式是在拉取请求中放置一个名为 OWNERS 的符号链接,指向“.credentials”文件,该文件用于存储构建环境中的凭证。因此,处理此文件会导致错误,包含存储库访问令牌的第一行会被输出到公共日志中。

 GitHub Actions 处理程序中的一个漏洞导致 Nixpkgs 中的包受到威胁。

此外,在检查 editorconfig 规则的处理程序中还发现了另一个漏洞。步骤:— 名称:从 PR 运行中获取已更改文件的列表:gh api […] | jq [ … ] > «$HOME/changed_files» — 使用:actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 使用:ref:refs/pull/$/merge — 名称:检查 EditorConfig 运行:cat «$HOME/changed_files» | xargs -r editorconfig-checker

在本例中,问题在于使用“xargs”实用程序对拉取请求中的每个文件运行 editorconfig-checker。由于文件名未经验证,攻击者可以在拉取请求中包含包含特殊字符的文件,这些文件在运行 editorconfig-checker 时会被处理为命令行参数。例如,在创建“--help”文件时,editorconfig-checker 会显示有关可用选项的提示。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster