Safeguard
Vulnerability Analysis•

CVE-2026-19118: High Race Condition RCE in GitHub Enterprise Server

CVE-2026-19118 is a high severity race condition giving code execution in GitHub Enterprise Server. Upgrade to 3.17.20, 3.18.14, 3.19.11, 3.20.7 or 3.21.5.

Safeguard Security Team
Updated 3 min read

CVE-2026-19118 is a high severity (CVSS 7.5) time-of-check time-of-use race condition in GitHub Enterprise Server that allowed remote code execution by an authenticated user with repository write access. It was fixed in 3.17.20, 3.18.14, 3.19.11, 3.20.7 and 3.21.5, and in 3.22.

What's affected

GitHub's record says all versions of GitHub Enterprise Server prior to 3.22 were affected, and gives these fixed releases:

  • 3.17.20
  • 3.18.14
  • 3.19.11
  • 3.20.7
  • 3.21.5

Exploitation required an authenticated user with write access to a repository and precise timing of concurrent upload requests. The release notes describe a race that let an attacker swap a validated upload for attacker-controlled content before the instance processed it. The notes give a High rating and no CVSS score. The 7.5 score in the record comes from NVD. The issue was reported through the GitHub Bug Bounty program, and the KEV flag is false.

A later release, 3.21.6 and its siblings, also fixes the Manage API issue CVE-2026-18730, so upgrading past these versions covers both.

How to check if you're exposed

Find the version of the appliance from the administrative shell:

ghe-version

Compare it with the fixed release for your series. Anything below the fixed release in the same series is affected, and so is any version lower than 3.22 without the backport.

Then look at who has write access to repositories. The flaw needs write access, so organizations that grant it widely, including to outside collaborators or automation accounts, have more exposure. Review the list of accounts with write access to important repositories.

What to do now

  1. Check your GitHub Enterprise Server version.
  2. Upgrade to the fixed release for your series, or to a newer one such as 3.21.6 which also fixes CVE-2026-18730.
  3. Take a backup before the upgrade using GitHub's backup utilities.
  4. Review write access to repositories and remove access that is not needed.
  5. Review audit logs for unusual upload activity from accounts with write access.
  6. Rotate secrets stored on the appliance if you suspect compromise.

Why it matters

The weakness class is CWE-367, time-of-check time-of-use. The server checks an upload, and later uses it, but an attacker can change the content in the window between the two steps. What was validated is no longer what is processed.

A race condition is hard to hit, which is why the attack complexity is high. But it can be repeated automatically until the timing works, and the result here is arbitrary code on the instance, which on a source code host is a high value target. The usual fix for this class is to validate and use the same object atomically, instead of checking and re-reading. No exploitation is reported.

Quick check

Do I need to be logged in?

Yes. An authenticated user with write access to a repository is required.

What if I run an older series than 3.17?

The record says versions prior to 3.22 were affected and lists fixes for 3.17 to 3.21. Move to a supported series.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.