Skip to main content

GitHub Enterprise Server EUVDEUVD-2026-40424

| CVE-2026-10585 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-30 product-cna@github.com GHSA-f24q-32qp-rrx8
6.3
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate to GHES instance
  2. Delivery
    Create Q&A Discussion with title containing JSON-LD breakout payload
  3. Exploit
    Victim browses to Discussion page
  4. Install
    Browser renders unsanitized title inside JSON-LD script block
  5. C2
    JSONP REST API endpoint loaded as script, bypassing CSP
  6. Execute
    Arbitrary JavaScript executes in victim's browser context
  7. Impact
    Session token exfiltrated or victim actions performed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

Exploitation requires the attacker to hold a valid authenticated account on the target GitHub Enterprise Server instance with permission to create Discussions in the Q&A category (PR:L). The victim must navigate to the Discussion page where the malicious title is rendered - passive browsing of the Discussions tab is sufficient, no explicit file download or link-click beyond normal page navigation is required (UI:P). The CSP bypass leg of the attack requires that JSONP callback endpoints on the GHES REST API are reachable from the victim's browser, which is the default configuration. Exploitation is meaningfully limited by: the authentication requirement (an unauthenticated external attacker cannot create Discussions), the victim interaction step (the victim must view the specific Discussion page), and the Q&A category specificity (only Discussions in the Q&A category render the AnsweredQuestionStructuredDataComponent affected by this flaw - Discussions in other categories are not affected by this specific code path). There is no requirement for a privileged account, administrative access, special network position, or non-default GHES configuration beyond standard Discussion access.

Impact

The CVSS 4.0 score of 6.3 (Medium) accurately captures the multi-signal risk profile: AV:N and AC:L confirm the attack is network-accessible with low complexity, while PR:L reflects the authentication requirement and UI:P the need for victim interaction. The most telling signals are SC:H and SI:H - the subsequent-system impact metrics - which reflect that the true damage falls on the victim user's browser session, not the attacker's own data (VC:L/VI:L). In practice, the CSP bypass via JSONP elevates this well beyond a self-contained nuisance: a successfully executed payload can exfiltrate session tokens, impersonate the victim, enumerate private repositories, or plant persistent backdoors in code. The UI:P (passive interaction - victim merely browses to the Discussion) is a low bar in a developer collaboration environment where viewing Discussions is routine behavior. No EPSS score was provided in the input data, so exploitation probability cannot be quantitatively stated. There is no CISA KEV listing and no public exploit code identified at time of analysis, meaning exploitation is not confirmed as widespread. However, the CSP bypass technique is well-documented in the security community and the attack primitive (crafted Discussion title) is trivially constructed by any authenticated user. Organizations running GHES with open Discussion access should treat patching as a genuine priority rather than a deferred maintenance item.

Exploit ScenarioDerived

An authenticated GHES user creates a new Q&A Discussion and sets the title to a crafted string that terminates the JSON-LD script block and injects a JSONP-backed script tag pointing to a REST API endpoint with an attacker-controlled callback parameter. When a victim developer navigates to the Discussion page - for example, while triaging questions from colleagues - the injected script fires in the victim's browser, extracting the session cookie or CSRF token and transmitting it to an attacker-controlled endpoint, enabling full account takeover without any further interaction. No public exploit code is known at time of analysis, but the technique requires only standard browser developer tools to construct.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jun 30, 2026

Stored cross-site scripting in GitHub Enterprise Server's Q&A Discussion feature allows an authenticated attacker to execute arbitrary JavaScript in any visiting user's browser by embedding a crafted payload into a Discussion title. The AnsweredQuestionStructuredDataComponent unsafely injects user-controlled titles into a server-rendered <script type="application/ld+json"> block, enabling script-context breakout; the attacker then leverages JSONP callback support in the GHES REST API to load arbitrary JavaScript and bypass the Content Security Policy entirely. No public exploit or CISA KEV listing exists at time of analysis, but the CSP bypass mechanism substantially elevates practical impact beyond typical stored XSS, enabling full session hijacking of any user who views the malicious Discussion.

RemediationAI

Upgrade GitHub Enterprise Server to the patched release corresponding to the deployed branch: 3.17.17, 3.18.11, 3.19.8, or 3.20.4, per the vendor release notes linked above. These are vendor-confirmed fixes per the GitHub CNA disclosure. If an immediate upgrade is not operationally feasible, a targeted compensating control is to restrict Discussion creation in the Q&A category to a trusted subset of users (e.g., organization owners or designated maintainers only), which reduces the attacker population to those with elevated trust; note this will impact developer self-service workflows. Disabling the Q&A Discussion category entirely for repositories where it is not in active use is a higher-impact control with minimal functional cost. Additionally, GHES administrators should audit whether JSONP callback endpoints in the REST API can be disabled or restricted at the network or application layer, as this independently removes the CSP bypass vector even without the application-level patch - however, JSONP disablement may break legacy integrations or scripts that rely on it. Do not rely on CSP alone as a mitigation; the exploit specifically demonstrates a method to circumvent it.

Affected VersionsENISA

Enterprise Server 3.19.0 ≤3.19.7
Enterprise Server 3.17.0 ≤3.17.16
Enterprise Server 3.20.0 ≤3.20.3
Enterprise Server 3.18.0 ≤3.18.10

Affected Packages

euvd enterprise_server no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is rooted in CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS), specifically within the AnsweredQuestionStructuredDataComponent, a server-side rendering component responsible for embedding JSON-LD structured data into Discussion pages in the Q&A category. JSON-LD blocks are rendered inside a <script type="application/ld+json"> tag, which browsers treat as data - not executable JavaScript - unless the content breaks out of the JSON string boundary. Because Discussion titles were not HTML-entity-encoded or JSON-escaped before insertion, an attacker could inject characters such as </script><script> or malformed JSON to terminate the data block and introduce executable code. The second, more sophisticated layer is the CSP bypass: GitHub Enterprise Server's REST API includes JSONP callback endpoints - a legacy mechanism allowing callers to specify an arbitrary JavaScript function name as a query parameter, causing the server to wrap its response in that function call. Since these responses are served from the same origin as the application, the browser's Content Security Policy permits loading them as scripts, allowing the attacker to craft a JSONP URL whose callback parameter contains executable JavaScript, effectively circumventing the CSP that would otherwise block injected inline scripts. Affected CPE covers all GHES deployments prior to version 3.21.

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.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:H/SI:H/SA:N
vuln.today AI 8.7 HIGH

Network-delivered stored XSS requires an authenticated account (PR:L) and victim page view (UI:R); scope changes because full JavaScript execution in the victim's browser enables session hijacking (C:H/I:H on subsequent system).

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

DescriptionCVE.org

A stored cross-site scripting vulnerability was identified in GitHub Enterprise Server that allowed an authenticated attacker to execute arbitrary JavaScript in another user's browser by injecting a crafted payload into the title of a Discussion in the Q&A category. The AnsweredQuestionStructuredDataComponent did not escape user-controlled Discussion titles before embedding them in a <script type="application/ld+json"> block, allowing the title to break out of the script context. The injection was escalated to a full cross-site scripting attack on GitHub Enterprise Server by leveraging JSONP callback support in the REST API to bypass the Content Security Policy. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.21 and was fixed in versions 3.20.4, 3.19.8, 3.18.11, 3.17.17. This vulnerability was reported via the GitHub Bug Bounty program https://bounty.github.com/ .

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
High
widely deployed self-hosted Git platform across large enterprise organizations
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.3%
Patch available No
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

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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