Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Victim must click a crafted authorization link (UI:R) and attacker needs low-priv access plus the app's callback URL; stolen OAuth code grants account access (C:H/I:H) with no direct availability loss (A:N).
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
5DescriptionGitHub Advisory
An incorrect regular expression vulnerability was identified in GitHub Enterprise Server that allowed an attacker to bypass OAuth redirect URI validation. An attacker with knowledge of a first-party OAuth application's registered callback URL could craft a malicious authorization link that, when clicked by a victim, would redirect the OAuth authorization code to an attacker-controlled domain. This could allow the attacker to gain unauthorized access to the victim's account with the scopes granted to the OAuth application. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.21 and was fixed in versions 3.20.1, 3.19.5, 3.18.8, 3.17.14, 3.16.17, 3.15.21, 3.14.26. This vulnerability was reported via the GitHub Bug Bounty program.
AnalysisAI
Account takeover in GitHub Enterprise Server (all versions prior to 3.21) is possible through an OAuth redirect URI validation bypass caused by a flawed regular expression (CWE-185). An attacker who knows a first-party OAuth application's registered callback URL can craft a malicious authorization link that leaks the victim's OAuth authorization code to an attacker-controlled domain, granting access to the victim's account with the scopes of that application. Reported via the GitHub Bug Bounty program; there is no public exploit identified at time of analysis, EPSS is very low (0.05%), and CISA SSVC records exploitation status as none.
Technical ContextAI
The flaw sits in the OAuth 2.0 authorization-code flow of GitHub Enterprise Server, the self-hosted appliance version of GitHub. During authorization, the server must validate that the redirect_uri in an authorization request exactly matches the callback URL registered for the OAuth application. CWE-185 (Incorrect Regular Expression) means the validation regex was too permissive - likely unanchored or improperly escaping the URL structure - so a crafted redirect_uri that superficially matches the registered callback but points to an attacker domain passes validation. Because the authorization code is delivered to whatever redirect target survives validation, a regex weakness here directly translates into credential/token leakage. CPE data confirms the affected component is cpe:2.3:a:github:enterprise_server across the 3.14-3.20 branches, including the explicitly listed 3.20.0 build.
RemediationAI
Vendor-released patch: upgrade to GitHub Enterprise Server 3.20.1, 3.19.5, 3.18.8, 3.17.14, 3.16.17, 3.15.21, or 3.14.26 depending on your branch - each is documented in the corresponding admin release notes (e.g., https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.5 and the equivalent @3.14 through @3.20 pages). Upgrading the appliance is the definitive fix and should be prioritized because no in-product configuration toggle disables the vulnerable redirect-validation path. Until you can patch, compensating controls are limited but useful: audit and minimize the scopes granted to first-party OAuth applications so a leaked code yields the least access; review OAuth app registrations and, where feasible, tighten or rotate registered callback URLs to reduce the pool of abusable first-party apps; and educate/administratively warn users against clicking unexpected 'authorize' links, since exploitation requires victim interaction. These controls reduce blast radius and likelihood but do not close the underlying regex bypass, so they are stopgaps rather than a substitute for the upgrade.
More in Enterprise Server
View allThe RFC 5011 implementation in rdata.c in ISC BIND 9.7.x and 9.8.x before 9.8.5-P2, 9.8.6b1, 9.9.x before 9.9.3-P2, and
An unsafe reflection vulnerability was identified in GitHub Enterprise Server that could lead to reflection injection. R
An improper verification of cryptographic signature vulnerability was identified in GitHub Enterprise Server that allowe
An authentication bypass vulnerability was present in the GitHub Enterprise Server (GHES) when utilizing SAML single sig
An Authentication Bypass (CWE-287) vulnerability in ESMAC (aka Enterprise Server Monitor and Control) in Micro Focus Ent
User authentication with username and password credentials is ineffective in OpenText (Micro Focus) Visual COBOL, COBOL
An improper limitation of a pathname to a restricted directory vulnerability was identified in GitHub Enterprise Server
An improper access control vulnerability in GitHub Enterprise Server allowed a workflow job to execute in a self-hosted
An XML signature wrapping vulnerability was present in GitHub Enterprise Server (GHES) when using SAML authentication wi
Server-side request forgery in GitHub Enterprise Server lets an unauthenticated attacker coerce the appliance into issui
A command injection vulnerability was identified in GitHub Enterprise Server that allowed an attacker with an editor rol
A command injection vulnerability was identified in GitHub Enterprise Server that allowed an attacker with an editor rol
Same weakness CWE-185 – Incorrect Regular Expression
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-24545
GHSA-mcp7-23p7-2v34