CVE-2026-18730: Server-side request forgery vulnerability in GitHub Enterprise Server Manage API leaked a replayable gateway-agent bearer token
A server-side request forgery (SSRF) vulnerability was identified in GitHub Enterprise Server that allowed an unauthenticated attacker to cause the Manage API to send crafted outbound requests to an attacker-controlled host. An unauthenticated endpoint parsed an attacker-supplied cluster configuration and issued gateway-to-agent requests whose HMAC authenticated only a timestamp, not the request path or body. An attacker positioned to intercept the outbound request could capture this token and replay it against privileged management agent endpoints. High-availability deployments were not affected due to a topology restriction. This vulnerability affected GitHub Enterprise Server releases in the 3.17, 3.18, 3.19, 3.20, and 3.21 series and was fixed in versions 3.17.21, 3.18.15, 3.19.12, 3.20.8, and 3.21.6. This vulnerability was reported via the GitHub Bug Bounty program.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
GitHub Enterprise Serverto a version that resolves this vulnerability.Fixed in 3.17.21 - Upgrade
Upgrade
GitHub Enterprise Serverto a version that resolves this vulnerability.Fixed in 3.18.15 - Upgrade
Upgrade
GitHub Enterprise Serverto a version that resolves this vulnerability.Fixed in 3.19.12 - Upgrade
Upgrade
GitHub Enterprise Serverto a version that resolves this vulnerability.Fixed in 3.20.8 - Upgrade
Upgrade
GitHub Enterprise Serverto a version that resolves this vulnerability.Fixed in 3.21.6
Event History
Frequently Asked Questions
Which deployments are exposed?
GitHub Enterprise Server deployments that are not configured for high availability are affected if they run a version prior to 3.22 and have not received the applicable fixed release. High-availability deployments are not affected because of a topology restriction.
What does an attacker need to exploit this issue?
An unauthenticated attacker can supply a crafted cluster configuration to trigger outbound Manage API requests to an attacker-controlled host. To obtain the replayable bearer token, the attacker must be positioned to intercept the outbound gateway-to-agent request.
Which releases contain the fix?
The issue is fixed in GitHub Enterprise Server versions 3.17.19, 3.18.13, 3.19.10, 3.20.6, and 3.21.4. It affects all versions prior to 3.22 that do not include the relevant fix.