
Workflow execution protections in GitHub Actions generally available - GitHub Changelog
GitHub Actions' workflow execution protections (actor and event allowlist rules) reach general availability, adding workflow-file-level policy targeting, an Insights dashboard for auditing rule impact, and a REST API for managing policy as code across an enterprise. Alongside this, GitHub is rolling out a new secure default that disables the pull_request_target trigger on public repositories lacking an existing policy, directly mitigating 'pwn request' attacks where fork-submitted code runs with base-repo secrets; the rule starts in evaluate (shadow) mode and becomes enforced on November 2, 2026.
What it is
GitHub Actions "workflow execution protections" are now GA for enterprises, organizations, and repositories. The consequential change for engineers is a new default rule that disables the pull_request_target trigger on public repositories that lack an applicable event policy — a mitigation for Pwn Request attacks. The rule ships in evaluate mode now and auto-enforces on November 2, 2026.
How it works
pull_request_target runs with access to base-repository secrets in the base-repo context. When a workflow using it executes code checked out from a fork, that untrusted code can exfiltrate secrets or poison the pipeline. The new default rule blocks pull_request_target outright for affected repos unless an event policy explicitly permits it.
Preconditions / Affected
- Public repositories only — the default does not apply to private or internal repos.
- Only repos with no existing applicable event policy for the trigger get the default.
- Enforcement on Nov 2, 2026 applies specifically to affected repos that were on the default
pull_request_targetpolicy before GA.
What to do
The page gives a concrete two-step preparation path:
- Audit now. Use the Insights dashboard to view the evaluate-mode results and see exactly which workflow runs will fail once enforcement begins.
- Choose before Nov 2: - Leave the rule in place to block
pull_request_target(if nothing depends on it), or - Explicitly allowpull_request_targetin an applicable Actions event policy if workflows still need it. You can scope this narrowly using workflow file targeting — allowlist only the specific workflow files that require the trigger rather than opening the whole repo.
For policy-at-scale, the new REST API creates/reads/updates/deletes rules (including workflow path conditions) at enterprise, org, and repo level, so enforcement can be wired into governance tooling as code.
flowchart TD
A[Public repo, no event policy] --> B{Depends on<br/>pull_request_target?}
B -->|No| C[Leave default rule:<br/>blocked Nov 2, 2026]
B -->|Yes| D[Add event policy allowing it]
D --> E[Scope via workflow<br/>file targeting]Caveats
The default rule starts in evaluate (shadow) mode — it blocks nothing until Nov 2, 2026, so the audit window is the entire runway. Repos that add an explicit policy before that date fall outside the default-enforcement cohort.
Organisations named here
- pull_request_target
Technologies named here
- GitHub Actions
- GitHub Actions execution protections
- Workflow file targeting
- GitHub Actions pull_request_target workflows
- Insights
- Actions policies REST API
- Evaluate mode
Techniques named here
- Pwn Requests
- Pwn Request
Related in DevSecOps
JFrog: The Governance Gap Between Your Policy and Your Pipeline

Dev Machine Guard Now Supports Windows - StepSecurity

Socket: TanStack npm Packages Compromised
