Skip to main content

GitHub Enterprise Server EUVDEUVD-2026-93666

| CVE-2026-103620 MEDIUM
Missing Authorization (CWE-862)
2026-10-06 product-cna@github.com GHSA-mj9w-xm4p-h2mp
6.0
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as write-access collaborator
  2. Exploit
    Call GraphQL to delete default branch
  3. Execution
    Attacker-controlled branch promoted to default
  4. Impact
    Clones and API serve unreviewed malicious content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated repository collaborator with write access (PR:L). The repository must be configured to require pull-request review but must NOT restrict branch deletion - this exact configuration state is the AT:P attack requirement; repos that restrict branch deletion are not exploitable. Exploitation is performed remotely via the GraphQL API against supported GitHub Enterprise Server 3.18-3.22 instances prior to the fix releases. Limiting factors: the attacker must already hold write access (no unauthenticated or read-only path), the specific review-without-deletion-restriction configuration must exist, and impact is confined to default-branch integrity (no data disclosure or denial of service).

Impact

This is a genuine but bounded integrity issue rather than a top-tier emergency. The CVSS 4.0 base score of 6.0 (Medium) is driven by VI:H with VC:N and VA:N - the flaw lets an attacker corrupt the integrity of a repository's default branch but cannot read data or cause outages. Several signals agree it is not a mass-exploitation threat: PR:L requires an authenticated collaborator who already has write access, AT:P indicates a specific configuration prerequisite must be met, and the issue was found and reported privately through the GitHub Bug Bounty program rather than discovered in attacks. No EPSS score, CISA KEV listing, or public POC is present in the provided data, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The real risk is contextual: in environments that rely on pull-request review as a merge-protection control but have not also restricted branch deletion, a semi-trusted insider (or a compromised collaborator account) can bypass that review gate and poison what new clones and default-branch API calls receive - a supply-chain-style integrity concern that matters most for organizations with many low-trust write collaborators. For tightly controlled repos with few trusted maintainers, real-world risk is low.

Exploit ScenarioDerived

A repository collaborator with only write access (e.g., an outside contributor or a compromised low-privilege account) targets a repo that requires pull-request review but does not restrict branch deletion. Using the GraphQL API over the network, they delete the protected default branch and have their own attacker-controlled branch promoted to default, so fresh clones and default-branch API requests silently serve their unreviewed code, bypassing the review requirement. No public exploit code is identified in the available data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 06, 2026

Repository collaborators with write access on self-hosted GitHub Enterprise Server 3.18 through 3.22 can delete a repository's current default branch through the GraphQL API and have an attacker-controlled branch become the new default, so that fresh clones and default-branch API requests receive unreviewed content. Exploitation is authenticated (a write-access collaborator is required, per CVSS PR:L) and additionally depends on the repository being configured to require pull-request review while not restricting branch deletion; repositories that restrict branch deletion are not exploitable. Impact is bounded to default-branch integrity with no confidentiality or availability loss, and no public exploit identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to 3.18.16, 3.19.13, 3.20.9, 3.21.7, or 3.22.2 on the matching release series, following the vendor release notes at https://docs.github.com/en/enterprise-server@3.18/admin/release-notes#3.18.16, https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.13, https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.9, https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.7, and https://docs.github.com/en/enterprise-server@3.22/admin/release-notes#3.22.2; because GitHub Enterprise Server is self-hosted there is no automatic cloud-side fix, so the upgrade must be applied by the instance administrator. If an immediate upgrade is not possible, the most direct compensating control is to enable branch-deletion restrictions (branch protection rules or the repository policy that limits who may delete branches) on repositories that require pull-request review, since the independent assessment confirms repositories that restrict branch deletion are not exploitable; the trade-off is that legitimate branch cleanup then requires a maintainer or admin action rather than any write-access user. Additional interim measures include temporarily reducing write access grants to the minimum necessary, particularly on repositories whose default branch content is consumed by build or deployment pipelines, with the trade-off of slowing normal contribution flow, and restricting or monitoring GraphQL API usage for branch-deletion and default-branch mutations. Because the flaw allows an attacker-controlled default branch to persist, remediation should also verify the currently configured default branch on sensitive repositories and rename or restore it, and review audit log entries for unexpected default-branch changes made before the fix was applied.

Affected VersionsENISA

Enterprise Server 3.22.0 <3.22.*
Enterprise Server 3.19.0 <3.19.*
Enterprise Server 3.20.0 <3.20.*
Enterprise Server 3.18.0 <3.18.*
Enterprise Server 3.21.0 <3.21.*

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-862 (Missing Authorization): the GraphQL API path that deletes a branch and/or reassigns the default branch failed to enforce the authorization boundary that should prevent a write-access repository collaborator from removing the default branch. In GitHub's permission model, write access permits pushing to branches but should not permit removing or replacing the default branch, an operation that effectively controls what every clone and default-branch API consumer receives. The vulnerability matters because of how default branches are consumed rather than how they are stored: once an attacker-controlled branch becomes default, the required pull-request review control is bypassed because tooling and clients pull the attacker's content directly, making this an integrity bypass rather than a simple permission quirk. The CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N, base 6.0) records the attack requirement AT:P as the repository configuration state (review required, branch deletion unrestricted) and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N) agrees that only integrity is affected and no user interaction is needed. No CPE strings were supplied with this record, so affected builds are identified from the vendor description and the linked release notes rather than from CPE matching.

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

Vendor (github) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network GraphQL API (AV:N) usable by an authenticated write collaborator (PR:L), no user interaction; only integrity of default-branch content is affected (I:H, C:N/A:N), scope unchanged.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 06, 2026 - 20:04 EUVD
CVE Published
Oct 06, 2026 - 19:17 cve.org
MEDIUM 6.0

DescriptionCVE.org

A missing authorization vulnerability was identified in GitHub Enterprise Server that allowed a repository collaborator with write access to delete the current default branch through the GraphQL API and cause an attacker-controlled branch to become the new default. In repositories that required pull-request review but did not restrict branch deletion, this bypassed the review requirement and caused fresh clones and default-branch API requests to use attacker-controlled content. This vulnerability affected supported GitHub Enterprise Server releases in the 3.18, 3.19, 3.20, 3.21, and 3.22 series and was fixed in versions 3.18.16, 3.19.13, 3.20.9, 3.21.7, and 3.22.2. This vulnerability was reported via the GitHub Bug Bounty program.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
High
self-hosted enterprise source-control platform, broad corporate deployment
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Github

View all
CVE-2026-1699 CRITICAL POC
10.0 Jan 30

Supply chain vulnerability in Eclipse Theia GitHub Actions workflow. The preview.yml workflow uses pull_request_target w

CVE-2026-27941 CRITICAL POC
9.9 Feb 26

Supply chain attack vector in OpenLIT GitHub Actions workflows. The pull_request_target trigger with checkout enables ma

CVE-2026-22869 CRITICAL POC
9.8 Jan 13

Eigent multi-agent workflow CI pipeline (ci.yml) uses pull_request_target with checkout of untrusted PR code, enabling a

CVE-2024-0200 CRITICAL POC
9.8 Jan 16

An unsafe reflection vulnerability was identified in GitHub Enterprise Server that could lead to reflection injection. R

CVE-2022-24724 CRITICAL POC
9.8 Mar 03

cmark-gfm is GitHub's extended version of the C reference implementation of CommonMark. Rated critical severity (CVSS 9.

CVE-2024-9487 CRITICAL POC
9.5 Oct 10

An improper verification of cryptographic signature vulnerability was identified in GitHub Enterprise Server that allowe

CVE-2026-28215 CRITICAL POC
9.1 Feb 26

Unauthenticated infrastructure overwrite in Hoppscotch API development ecosystem before 2026.2.0. Attackers can overwrit

CVE-2018-1000600 HIGH POC
8.8 Jun 26

A exposure of sensitive information vulnerability exists in Jenkins GitHub Plugin 1.29.1 and earlier in GitHubTokenCrede

CVE-2026-30920 HIGH POC
8.6 Mar 10

OneUptime versions prior to 10.0.19 allow unauthenticated attackers to hijack GitHub App integrations across projects by

CVE-2026-25221 HIGH POC
8.1 Feb 02

PolarLearn versions 0-PRERELEASE-15 and earlier lack proper state parameter validation in OAuth 2.0 authentication, enab

CVE-2026-23644 HIGH POC
7.5 Jan 18

Path traversal in esm.sh CDN prior to version 0.0.0-20260116051925-c62ab83c589e allows unauthenticated remote attackers

CVE-2024-42471 HIGH POC
7.5 Sep 02

actions/artifact is the GitHub ToolKit for developing GitHub Actions. Rated high severity (CVSS 7.5), this vulnerability

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy