Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach GHES appliance over network
-
DeliverySubmit notebook with crafted internal-port URL
-
ExploitBypass port validation to hit internal service
-
ExecutionExtract secret via timing oracle
-
PersistReplay secret to internal service
-
ImpactExecute code on appliance
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires network access to the GitHub Enterprise Server appliance and use of the notebook viewer feature, which validates a user-supplied URL's scheme and host but not its port - enabling requests to internal services on other ports of the same appliance. Exploitation is unauthenticated when private mode is disabled, but requires any authenticated user when private mode is enabled (a common enterprise hardening setting that limits the unauthenticated attack surface). Full impact depends on the multi-step timing-oracle secret extraction succeeding and a usable internal service being reachable for the follow-on RCE. Affected versions are 3.17 through 3.22; upgrading to 3.22.1, 3.21.6, 3.20.8, 3.19.12, 3.18.15, or 3.17.21 removes the condition. |
| Impact | This is a genuine high-priority vulnerability, not a high-CVSS-but-low-risk case. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, 9.3) reflects a network-reachable flaw that chains from SSRF to full remote code execution on the appliance - total confidentiality, integrity, and availability impact. I differ on complexity: the exploit relies on a response-timing oracle to extract instance secrets one character at a time, which in practice is a probabilistic, iterative side-channel rather than a single deterministic request, so AC:H is more defensible than the vendor's AC:L. No EPSS score, KEV listing, or public POC is provided, so exploitation status is: no public exploit identified at time of analysis. The flaw was found and reported through the GitHub Bug Bounty program (source GitHub_P) and fixed across all supported branches, which argues for prompt patching despite the absence of active-exploitation signals. Note the PR ambiguity: exploitation is unauthenticated only when private mode is disabled; with private mode enabled (common in enterprise deployments) it requires any authenticated user, so the effective privilege prerequisite depends on instance configuration. |
| Exploit ScenarioDerived | An attacker with network access to a GitHub Enterprise Server appliance submits a notebook containing a URL that passes scheme and host validation but points to an internal service on an unvalidated port. Because response timing leaks whether guessed characters are correct, the attacker extracts instance secrets character by character, then replays a secret against an internal service to achieve remote code execution on the appliance. No public exploit code is identified; exploitation is unauthenticated when private mode is disabled or requires any authenticated user when private mode is enabled. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Server-side request forgery in the GitHub Enterprise Server notebook viewer allows a remote attacker to direct requests to internal services listening on non-standard ports of the same appliance, because the viewer validated a user-supplied URL's scheme and host but not its port. Response bodies are not returned, but response timing acts as an oracle that can be used to extract instance secrets character by character; an extracted secret can then be used in a separate interaction with an internal service to obtain remote code execution on the appliance. All GitHub Enterprise Server versions 3.17 through 3.22 are affected; exploitation requires network access to the instance and is unauthenticated only when private mode is disabled, otherwise any authenticated user suffices, and no public exploit has been identified at time of analysis. Note that the independent assessment rates this as high difficulty (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H), since full impact depends on a multi-step timing-oracle extraction succeeding and a usable internal service being reachable for the follow-on RCE.
RemediationAI
Vendor-released patch: upgrade GitHub Enterprise Server to 3.22.1, 3.21.6, 3.20.8, 3.19.12, 3.18.15, or 3.17.21 as appropriate for your release line - these are the exact fixed versions and the per-version release notes are linked at https://docs.github.com/en/enterprise-server@3.22/admin/release-notes#3.22.1 (substitute the matching version path for other lines). There is no documented configuration toggle that patches the notebook viewer itself, so upgrading is the only complete fix. Where an immediate upgrade is not possible, the highest-value compensating control is to keep private mode enabled, because the vulnerability is unauthenticated only when private mode is disabled and requires an authenticated account otherwise; the trade-off is that private mode changes instance visibility and may affect unauthenticated workflows. Additionally, restrict network reachability to the appliance (management and web interfaces) to trusted networks or VPN, since exploitation requires network access to the instance; this reduces exposure but does not protect against an insider or an already-authenticated low-privilege user. If the notebook viewer is not required in your environment, disabling or blocking access to that feature removes the exposed request path entirely, at the cost of losing notebook rendering functionality. Monitor appliance logs for anomalous outbound requests to localhost or unexpected internal ports originating from the notebook viewer, and rotate any instance secrets or tokens that may have been exposed, assuming a timing-oracle extraction may have occurred undetected.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-918 (Server-Side Request Forgery): the notebook viewer accepted a user-supplied URL and enforced an allow-list style check on the scheme and host, but omitted the port component of the authority, so requests could be aimed at loopback or same-appliance services bound to other ports. This is a classic blind SSRF variant - response bodies were suppressed, but the observable difference in response timing turned the endpoint into a side-channel oracle, letting an attacker infer secret material byte by byte, a technique far harder to exploit reliably than direct response reflection and consistent with the assessed AC:H rating. The harvested secret then served as a credential for a separate, legitimate-looking interaction with an internal service, escalating from information disclosure to remote code execution on the appliance. The CPE cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:* confirms the affected technology is the self-hosted GitHub Enterprise Server appliance, a single-node virtual machine or cluster that runs many internal services locally, which is precisely the environment where port-agnostic SSRF is dangerous. Access control conditions matter: with private mode disabled the vulnerable path is reachable without authentication (PR:N in the vector), while private mode restricts it to any authenticated user.
Know when Github gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated in default (private mode off), but AC:H because RCE depends on iterative timing-oracle secret extraction plus a second internal interaction.
Primary rating from Vendor (GitHub_P).
CVSS VectorVendor: GitHub_P
Lifecycle Timeline
2DescriptionCVE.org
A server-side request forgery (SSRF) vulnerability was identified in the notebook viewer of GitHub Enterprise Server. The notebook viewer validated the scheme and host of a user-supplied URL but did not validate the port, allowing requests to be directed to internal services listening on other ports of the same appliance. Response bodies were not returned to the requester, but response timing acted as an oracle that allowed instance secrets to be extracted character by character. An extracted secret could then be used in a separate interaction with an internal service to obtain remote code execution on the appliance. Exploitation required network access to the instance and was unauthenticated when private mode was disabled, or required any authenticated user when private mode was enabled. This vulnerability affected GitHub Enterprise Server versions 3.17 through 3.22 and was fixed in versions 3.22.1, 3.21.6, 3.20.8, 3.19.12, 3.18.15, and 3.17.21. This vulnerability was reported through the GitHub Bug Bounty program.
Executive ViewAI
GitHub Enterprise Server instances running versions 3.17 through 3.22 are exposed to a critical notebook viewer flaw that can let a network-adjacent attacker extract secrets and potentially achieve remote code execution on the appliance, putting source code, CI/CD credentials, and connected internal services at risk. Because no vendor-released patch identified at time of analysis and unauthenticated exploitation is possible when private mode is disabled, security leadership should prioritize immediate exposure reduction, secret rotation, and upgrade planning while monitoring for suspicious internal-port activity.
No vendor-released patch identified at time of analysis; enable private mode to require authentication, restrict network access to GHES, disable or restrict notebook viewer, block requests to internal non-standard ports, rotate secrets, and monitor for SSRF or timing-oracle attempts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Supply chain vulnerability in Eclipse Theia GitHub Actions workflow. The preview.yml workflow uses pull_request_target w
Supply chain attack vector in OpenLIT GitHub Actions workflows. The pull_request_target trigger with checkout enables ma
Eigent multi-agent workflow CI pipeline (ci.yml) uses pull_request_target with checkout of untrusted PR code, enabling a
An unsafe reflection vulnerability was identified in GitHub Enterprise Server that could lead to reflection injection. R
cmark-gfm is GitHub's extended version of the C reference implementation of CommonMark. Rated critical severity (CVSS 9.
An improper verification of cryptographic signature vulnerability was identified in GitHub Enterprise Server that allowe
Unauthenticated infrastructure overwrite in Hoppscotch API development ecosystem before 2026.2.0. Attackers can overwrit
A exposure of sensitive information vulnerability exists in Jenkins GitHub Plugin 1.29.1 and earlier in GitHubTokenCrede
OneUptime versions prior to 10.0.19 allow unauthenticated attackers to hijack GitHub App integrations across projects by
PolarLearn versions 0-PRERELEASE-15 and earlier lack proper state parameter validation in OAuth 2.0 authentication, enab
Path traversal in esm.sh CDN prior to version 0.0.0-20260116051925-c62ab83c589e allows unauthenticated remote attackers
actions/artifact is the GitHub ToolKit for developing GitHub Actions. Rated high severity (CVSS 7.5), this vulnerability
EUVD-2026-84872
GHSA-5p5v-w43x-q8v7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB