Skip to main content
Vulnerability Database/CVE-2026-96890

CVE-2026-96890: GitHub Enterprise Server SSRF Vulnerability

CVE-2026-96890 is a Server-Side Request Forgery flaw in GitHub Enterprise Server that allows repository contributors to trigger requests to internal hosts, potentially leading to remote code execution. This article covers technical details, affected versions, impact assessment, and mitigation strategies.

Published:

CVE-2026-96890 Overview

CVE-2026-96890 is a Server-Side Request Forgery (SSRF) vulnerability in GitHub Enterprise Server (GHES). The secret scanning validator for Google Cloud Platform (GCP) service account credentials trusted the token endpoint embedded in a committed credential and issued a request without restricting the destination. An authenticated contributor with push access could coerce the appliance into contacting attacker-controlled internal hosts. The flaw is tracked under [CWE-918] and was reported through the GitHub Bug Bounty program.

Critical Impact

Attackers chaining this SSRF can reach internal services from the appliance and potentially achieve remote code execution on the GHES host.

Affected Products

  • GitHub Enterprise Server 3.20 (prior to 3.20.9)
  • GitHub Enterprise Server 3.21 (prior to 3.21.7)
  • GitHub Enterprise Server 3.22 (prior to 3.22.2)

Discovery Timeline

  • 2026-10-06 - CVE-2026-96890 published to NVD
  • 2026-10-06 - Last updated in NVD database

Technical Details for CVE-2026-96890

Vulnerability Analysis

The vulnerability resides in the secret scanning validity check pipeline for GCP service account credentials. When GHES processes a committed credential, the validator parses the embedded token endpoint URL and issues an outbound HTTP request to verify the credential's validity. The validator did not restrict the destination host, allowing requests to internal network ranges reachable from the appliance.

An authenticated contributor pushes a crafted service account JSON file into a repository. The secret scanner invokes the validator, which contacts an attacker-controlled URL embedded in the token endpoint field. The response can be reflected back into the appliance context, enabling further exploitation of internal services.

GitHub documents chaining paths that lead to remote code execution on the appliance when internal management endpoints are reached. Exploitation requires GitHub Advanced Security with secret scanning validity checks enabled, which is a non-default configuration.

Root Cause

The secret scanning validator trusted an attacker-controlled URL field inside the submitted credential and performed outbound requests without an allowlist, blocklist, or metadata-service protection. This matches the canonical SSRF pattern described by [CWE-918].

Attack Vector

The attacker requires push access to any repository on the GHES instance. By committing a crafted GCP service account credential, the attacker redirects the validator's outbound request to internal hosts, including loopback interfaces and management APIs. See the GitHub Enterprise Server 3.22.2 release notes for vendor-supplied technical context.

Detection Methods for CVE-2026-96890

Indicators of Compromise

  • Unexpected outbound HTTP requests originating from the GHES appliance to internal IP ranges (RFC1918, link-local 169.254.0.0/16, or loopback).
  • Commits containing GCP service account JSON files where the token_uri field points to non-Google domains or internal hosts.
  • Secret scanning validator logs showing non-standard destination hosts for GCP credential checks.

Detection Strategies

  • Audit repository push events for files resembling GCP service account credentials and inspect the token_uri and auth_uri fields.
  • Correlate secret scanning job telemetry with appliance network egress logs to identify validator requests leaving expected Google endpoints.
  • Alert on any contributor account that pushes credential-like artifacts shortly before anomalous outbound appliance traffic.

Monitoring Recommendations

  • Forward GHES audit logs and network flow data into a centralized analytics platform for correlation across push events and egress traffic.
  • Monitor for lateral traffic from the GHES appliance toward management interfaces, cloud metadata services, or internal admin APIs.
  • Review GitHub Advanced Security configuration state and track changes to secret scanning validity check settings.

How to Mitigate CVE-2026-96890

Immediate Actions Required

  • Upgrade GitHub Enterprise Server to version 3.20.9, 3.21.7, or 3.22.2 or later, depending on the deployed release branch.
  • If immediate patching is not possible, disable secret scanning validity checks until the upgrade is applied.
  • Review contributor access on sensitive repositories and revoke push permissions for untrusted accounts.

Patch Information

GitHub released fixes in GHES 3.20.9, 3.21.7, and 3.22.2. Refer to the GHES 3.20.9 release notes, GHES 3.21.7 release notes, and GHES 3.22.2 release notes for upgrade guidance.

Workarounds

  • Disable secret scanning validity checks in the GitHub Advanced Security configuration until the appliance is patched.
  • Restrict appliance egress via network ACLs so the GHES host cannot reach internal management services or cloud metadata endpoints.
  • Enforce branch protection and require review for commits introducing credential-shaped files to reduce the attacker's push surface.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.