Server-Side Request Forgery in GitHub Enterprise Server allowed extraction of sensitive environment variables via timing side-channel attack
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 3.14.26, 3.15.21, 3.16.17, 3.17.14, 3.18.8, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
A server-side request forgery (SSRF) vulnerability was identified in GitHub Enterprise Server that allowed an attacker to extract sensitive environment variables from the instance through a timing side-channel attack against the notebook rendering service. When private mode was disabled, the notebook viewer followed HTTP redirects without revalidating the destination host, enabling an unauthenticated SSRF to internal services. By chaining this with regex filter queries against an internal API and measuring response time differences, an attacker could infer secret values character by character. Exploitation required that private mode be disabled and that the attacker be able to chain the instance's open redirect endpoint through an external redirect to reach internal services. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.21 and was fixed in versions 3.14.26, 3.15.21, 3.16.17, 3.17.14, 3.18.8, 3.19.5, and 3.20.1. This vulnerability was reported via the GitHub Bug Bounty program.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- GitHub Enterprise Server
From 3.14.0 · fixed in 3.14.26; From 3.15.0 · fixed in 3.15.21; From 3.16.0 · fixed in 3.16.17; From 3.17.0 · fixed in 3.17.14; From 3.18.0 · fixed in 3.18.8; From 3.19.0 · fixed in 3.19.5; From 3.20.0 · fixed in 3.20.1
References 7
docs.github.com
- en/enterprise-server@3.14/admin/release-notes#3.14.26
- en/enterprise-server@3.15/admin/release-notes#3.15.21
- en/enterprise-server@3.16/admin/release-notes#3.16.17
- en/enterprise-server@3.17/admin/release-notes#3.17.14
- en/enterprise-server@3.18/admin/release-notes#3.18.8
- en/enterprise-server@3.19/admin/release-notes#3.19.5
- en/enterprise-server@3.20/admin/release-notes#3.20.1