Summary
CVE-2026-77987 is a critical server-side request forgery (SSRF) vulnerability in the notebook viewer feature of GitHub Enterprise Server. The flaw allowed requests to be redirected to internal services on non-standard ports, and although response bodies were not exposed to the attacker, response timing could be used as an oracle to extract instance secrets character by character. Those secrets could then be leveraged against internal services to achieve remote code execution on the appliance, earning the issue a CVSS score of 9.3 (Critical).
Technical details
- Root cause: The notebook viewer validated the scheme and host of a user-supplied URL but failed to validate the port, allowing the server to make outbound requests to internal services listening on other ports of the same appliance.
- Trigger conditions: An attacker supplies a crafted URL (with a manipulated port) to the notebook viewer; the appliance then issues a request to an internal service on the attacker’s behalf.
- Attack vector: Network-based (AV:N); exploitation required only network access to the instance and was unauthenticated when private mode was disabled, or achievable by any authenticated user when private mode was enabled. No user interaction is required.
- Impact: While the SSRF itself does not return response content directly, differences in response timing act as a side channel that can be used to extract instance secrets one character at a time. Extracted secrets can subsequently be used in a separate step to obtain remote code execution on the GitHub Enterprise Server appliance, resulting in full compromise of confidentiality, integrity, and availability.
- CWE classifications: CWE-918 (Server-Side Request Forgery) and CWE-208 (Observable Timing Discrepancy).
Affected software
- GitHub Enterprise Server 3.17.x (prior to 3.17.21)
- GitHub Enterprise Server 3.18.x (prior to 3.18.15)
- GitHub Enterprise Server 3.19.x (prior to 3.19.12)
- GitHub Enterprise Server 3.20.x (prior to 3.20.8)
- GitHub Enterprise Server 3.21.x (prior to 3.21.6)
- GitHub Enterprise Server 3.22.x (prior to 3.22.1)
Severity
- CVSS v4.0 Base Score: 9.3 (Critical)
- Vector:
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
Mitigation and recommended actions
- Immediate: Upgrade GitHub Enterprise Server to the fixed release for your version branch: 3.17.21, 3.18.15, 3.19.12, 3.20.8, 3.21.6, or 3.22.1 (or later).
- If immediate patching is not possible: Restrict network access to the GitHub Enterprise Server management/administrative interfaces and internal network segments to trusted hosts only, and monitor for anomalous outbound requests originating from the notebook viewer feature. Enabling private mode limits exploitation to authenticated users, reducing exposure until the appliance can be patched, but is not a substitute for upgrading.

