← All permissions
Organization permission·organization_self_hosted_runners:write
Self-hosted runners: Write
Tier 1 · High
Why Tier 1
Registers runners and changes runner groups. A runner the attacker controls receives the jobs, and the secrets, of every repository allowed to use it.
- Target
- Organization
- Plane
- ManagementRunners: Self-hosted runners, runner groups, hosted runner images and their networks.
- Granted by
- Fine-grained PAT, GitHub App
- Available on
- Every setup
What it unlocks
17 REST endpoints need this permission. A few of them:
- POST /orgs/{org}/actions/runner-groups
- PATCH /orgs/{org}/actions/runner-groups/{runner_group_id}
- DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}
- PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories
Roles that include it
- T0OwnerThe organization and every repository in it
- T1CI/CD adminThe organization's Actions setup
Classic scopes that reach it
- T0admin:orgdocumented
- T0repodocumented
- T1manage_runners:enterprisestated by GitHub
Attack paths
Techniques it enables
- Register the attacker's machine as a runner Keep access
Escalations it starts
- Register a self-hosted runner: Every job routed to that runner, with the secrets those jobs receive, and a foothold that outlives the stolen token.
Other levels
GitHub Docs: Organization permissions for "Self-hosted runners"