Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privileged GitLab account
-
DeliveryCreate repo with crafted file content
-
ExploitBypass HTML attribute sanitization in syntax highlighter
-
ExecutionVictim views file in web UI
-
PersistJavaScript executes in victim session
-
ImpactHijack session / act as victim
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 an authenticated GitLab CE/EE user (PR:L) who can create or control a repository, and a victim user who must view the attacker-controlled, syntax-highlighted file in the GitLab web UI (UI:R) - the XSS triggers through improper sanitization of HTML attributes in syntax-highlighted output. The description notes it applies only 'under certain conditions,' indicating the flaw is not universally triggerable across all content; the exact conditions are not detailed in the available data. Limiting factors: an attacker needs a valid account and repository write/creation ability, and no impact occurs without a second user rendering the malicious content, so pure drive-by or unauthenticated exploitation is not possible. Affected deployments are GitLab CE/EE 19.1-19.2.7, 19.3-19.3.4, and 19.4-19.4.1. |
| Impact | This is a credible, actionable priority rather than a CVSS-inflated non-issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N, 8.7) describes a network-reachable, low-complexity stored cross-site scripting flaw (CWE-79) requiring only a low-privileged authenticated account plus victim interaction, with a scope change reflecting that the attacker's JavaScript executes in OTHER users' browser sessions - the defining risk of stored XSS in a collaborative platform. POC status is confirmed publicly available (HackerOne report #3936831), which materially raises near-term exploitation likelihood, though POC availability is NOT the same as active exploitation. No CISA KEV listing and no EPSS score were provided in the input, so there is no signal of confirmed in-the-wild exploitation or a quantified exploitation probability; the absence of these is a data gap, not evidence of low risk. SSVC-style reasoning: exploitation is PROOF-OF-CONCEPT, technical impact is partial-to-total (code execution in victim sessions can lead to account/session compromise), but the attack is NOT automatable in the usual sense because it depends on a target user viewing the malicious repository. Net: a high-value, self-hostable developer platform plus a published POC and low privilege barrier justifies prompt patching, tempered by the required user interaction and need for an authenticated foothold. |
| Exploit ScenarioDerived | An attacker with a low-privileged GitLab account crafts a repository whose file content abuses improperly sanitized HTML attributes in GitLab's syntax-highlighted code rendering. When another user (e.g., a reviewer or maintainer) views that file in the GitLab web UI, the injected JavaScript executes in their authenticated browser session, enabling session/token theft or actions on their behalf. A public proof-of-concept exists (HackerOne #3936831), lowering the effort to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Stored cross-site scripting in GitLab CE/EE (affected ranges 19.1 through 19.2.7, 19.3 through 19.3.4, and 19.4 through 19.4.1) lets an authenticated user with repository write access embed a crafted file whose syntax-highlighted output is rendered with unsanitized HTML attributes, executing arbitrary JavaScript in the browser session of any other user who views it. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N reflects that the attacker must be authenticated (PR:L) and that a second user must render the malicious content (UI:R), but that successful execution crosses a trust boundary (S:C) with high confidentiality and integrity impact, including potential theft of session tokens or actions taken as the victim. Exploitation requires publicly available exploit code exists, with a HackerOne report and the upstream work item publicly linked; CISA KEV status was not indicated in the supplied intelligence, so this should be treated as a high-priority authenticated stored XSS rather than a confirmed actively exploited campaign. The affected surface is bounded by the requirement for repository control plus a victim viewing the highlighted file, so unauthenticated or pure drive-by exploitation is not possible.
RemediationAI
Upgrade to a fixed release: GitLab CE/EE 19.2.8 or later on the 19.2 line, 19.3.5 or later on the 19.3 line, or 19.4.2 or later on the 19.4 line, as documented in the vendor patch release note at https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/ (engineering record: https://gitlab.com/gitlab-org/gitlab/-/work_items/629523). Vendor-released patch: 19.2.8, 19.3.5, and 19.4.2. Because exploitation requires an authenticated user with repository write or creation rights plus a victim who renders the syntax-highlighted file, interim compensating controls are viable but each has trade-offs: enforce a strict Content-Security-Policy that disallows inline script and restricts script-src to first-party origins, which can break legitimate GitLab UI features or embedded content and requires testing before broad rollout; temporarily restrict project creation and push rights to a vetted set of users or groups, which reduces the pool of potential attackers but constrains normal developer workflows; review or quarantine untrusted repositories whose files are rendered with highlighting, accepting the operational overhead of manual triage; and rotate sessions, tokens, and personal access tokens for users who may have viewed attacker-controlled highlighted content, since a successful XSS executes in the victim's session context with high confidentiality and integrity impact. Do not rely on the wildcard CPE or on generic defense-in-depth guidance in place of applying the fixed versions. Note that publicly available exploit code exists for this issue, so prioritize patching externally reachable and internet-exposed GitLab instances ahead of fully isolated internal deployments.
Affected VersionsENISA
Affected Packages
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 flaw is a CWE-79 improper neutralization of input during web page generation (cross-site scripting) localized to GitLab's syntax-highlighting rendering path. GitLab renders repository file contents through highlighting libraries and emits HTML markup for tokens and attributes; the advisory states the root cause is improper sanitization of HTML attributes in that syntax-highlighted output, meaning attacker-controlled text in a repository file can break out of the intended attribute context and inject markup or event handlers that the victim's browser executes. The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N shows network reachability with low attack complexity, required authenticated privileges, required user interaction, and a scope change - consistent with an XSS that executes with the origin privileges of a different user than the attacker. The CPE metadata cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:* is a wildcard CPE covering GitLab products generically rather than pinning a build, so version scoping must come from the advisory text: 19.1 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2. Impact is limited to confidentiality and integrity (C:H/I:H) with no availability effect (A:N), which matches script execution in another user's session rather than denial of service. The upstream references - the GitLab work item 629523, the HackerOne report 3936831, and the 19.4.2 patch release note - tie the defect to the repository browsing/highlighting feature and confirm the fix shipped in the 19.4.2 patch release train.
Know when Gitlab 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
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
Authenticated low-priv user can inject (PR:L) but needs a victim to view the content (UI:R); JS runs in another user's session so scope changes (S:C) with high confidentiality/integrity impact and no availability impact.
Primary rating from Vendor (GitLab).
CVSS VectorVendor: GitLab
Lifecycle Timeline
2DescriptionCVE.org
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 19.1 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2 that, under certain conditions, could have allowed an authenticated user to execute arbitrary JavaScript in the context of other users' browser sessions via a specially crafted repository, due to improper sanitization of HTML attributes in syntax-highlighted output.
Executive ViewAI
GitLab CE/EE deployments running the affected 19.1, 19.3, or 19.4 release ranges carry a stored cross-site scripting flaw that lets any user with repository write access plant crafted content which executes in the browsers of colleagues who later view it. Because the payload persists in the repository and runs for every viewer, a single malicious or compromised committer can reach a wide set of internal users, including privileged accounts, and potentially capture session tokens or act as those victims. With no vendor patch currently available, leadership should treat this as an organization-wide risk to the GitLab platform that hosts and governs source code.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict repository write access to vetted committers, audit and remove suspicious files with embedded HTML or script content, shorten user session lifetimes, enforce content security policy and secure cookie flags for the GitLab domain, and monitor repository activity for anomalies while tracking the vendor advisory for an eventual fix.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Related Vulnerabilities in GitLab CE/EE Authorization and Access Control Flaws
View all 24An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. Rated critical severity (CVSS 10
An issue has been discovered in GitLab CE/EE affecting all versions from 16.1 prior to 16.1.6, 16.2 prior to 16.2.9, 16.
When requests to the internal network for webhooks are enabled, a server-side request forgery vulnerability in GitLab af
Unauthenticated arbitrary file read in GitLab CE/EE lets remote attackers retrieve files from the GitLab server via the
The SSH key upload feature (lib/gitlab_keys.rb) in gitlab-shell before 1.7.3, as used in GitLab 5.0 before 5.4.1 and 6.x
A vulnerability in GitLab CE/EE affecting all versions from 11.10 prior to 15.1.6, 15.2 to 15.2.4, 15.3 to 15.3.2 allows
Sensitive credential and configuration disclosure in GitLab Enterprise Edition allows an authenticated user with Duo Cha
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over
Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser
Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows
EUVD-2026-98215
GHSA-ggg2-vpmq-m78f
NVD
CVE.org
EPSS
Exploit-DB