主要观点:GitHub Actions 有政策机制限制仓库等可使用的动作和可复用工作流类型,但此机制易被绕过。虽 GitHub 已更新文档提及该绕过方式,但仍应解决此问题。
关键信息:
- 背景:GitHub Actions 是其 CI/CD 产品,用户需小心允许在工作流中运行的内容,下游用户从开放索引获取组件并依赖常规模糊启发式判断信任度,但此方式存在不足。
- GitHub Actions 政策:可限制工作流使用特定组织和仓库的动作及可复用工作流,提供特殊“预设”案例,如只允许同组织命名空间的动作等,但易被绕过。
- 绕过政策方式:利用 Actions 和可复用工作流与 GitHub 其他部分共享命名空间,以及
uses:
关键字可指向运行器自身相对路径的特性,通过git clone
等方式在运行器文件系统中获取动作并使用,从而绕过政策限制。 - 修复方式:可将“本地”
uses:
引用视为政策的另一类别予以拒绝,或明确记录其为政策机制的局限性。
重要细节: - 最近的
tj-actions 攻击
表明即使满足启发式判断的动作也可能被 compromised。 - GitHub 对绕过方式的更新:政策从不限制对运行器文件系统上本地动作的访问。
- 文中示例展示了具体绕过方式的代码及运行结果。
- 讨论在 Mastodon、Bluesky、Reddit 等平台进行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。