GitHub Actions 自12月2日起默认阻止 pull_request_target 触发

GitHub 宣布从 2026 年 12 月 2 日起,所有公开仓库中的 pull_request_target 工作流默认被拦截,除非 Actions 事件策略显式放行。这一触发器长期存在“以基仓库权限运行不可信代码”的风险,此次调整直接影响依赖它的 CI 流水线。

一句话看懂:GitHub 宣布从 2026 年 12 月 2 日起,所有公开仓库中的 pull_request_target 工作流默认被拦截,除非 Actions 事件策略显式放行。这一触发器长期存在“以基仓库权限运行不可信代码”的风险,此次调整直接影响依赖它的 CI 流水线。

事件核心:发生了什么

根据 GitHub Changelog,原定 2026 年 11 月 2 日生效的强制执行已推迟到 12 月 2 日。届时,在 GitHub Free、GitHub Team 和 GitHub Enterprise Cloud 的公开仓库中,pull_request_target 事件将默认被阻止;只有适用的 Actions 事件策略明确允许才能运行。该规则最初处于“评估模式”,先展示哪些运行会被拦截,而不会直接执行阻止。私有仓库和内部仓库不受影响。

永久生效前,GitHub 安排了两轮临时强制窗口:11 月 9 日和 11 月 16 日的 16:00–18:00(UTC)。窗口内被规则拦截的工作流不会执行,会生成带错误标注的失败运行;窗口结束后回到评估模式。

为什么重要

pull_request_target 在基仓库上下文中运行,可以访问仓库 secrets。如果工作流处理来自 fork 的不可信代码,攻击者可能借此窃取凭据或污染流水线。这类风险在开源项目接受外部 PR 时尤为突出。把默认值从“允许”改为“阻止”,是 CI 安全策略向最小权限靠拢的信号,也会促使维护者显式审查哪些工作流确实需要该触发器。

对用户/开发者/创作者的影响

维护公开仓库的开发者需要提前检查。目前公开信息显示,可使用 Insights 查看规则会拦截哪些工作流运行,然后二选一:保留默认规则以阻止该触发器,或在 Actions 事件策略中显式允许,并用工作流文件定向放行特定工作流。对依赖 pull_request_target 做评论、标签或部署的自动化项目,策略配置、权限拆分和 secrets 管理将成为上线前必须完成的功课。

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

值得关注的后续

一是两轮临时窗口内有多少公开仓库出现失败运行,反映依赖面大小;二是开发者是否转而使用 pull_request 配合更细的权限模型;三是 GitHub Enterprise Server 尚未纳入本次范围,后续是否跟进值得观察。

来源:GitHub Changelog

celebrityanime
celebrityanime
文章: 31979

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注