Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as developer-role user
-
DeliveryStore malicious HTML in CI job content
-
ExploitPrivileged user opens CI job modal
-
ExecutionUnsanitized script executes in victim session
-
ImpactEscalate privileges / hijack account
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 | Requires an authenticated account with developer-role permissions on a project the attacker can influence, plus a specific configuration/interaction: the malicious HTML must be rendered in GitLab's CI job modal and a higher-privileged victim must open that modal (UI:R), so exploitation is not automatable and cannot occur against a passive or non-interacting target. Limiting factors: attacker cannot be fully unauthenticated (PR:L developer role needed), the payload only pays off when a privileged user views the crafted CI job, and it is constrained to GitLab CE/EE versions 19.2 through 19.2.1 - instances with no untrusted developer-role users or that have upgraded to 19.2.2 are not exposed. The vendor notes it triggers only 'under certain conditions,' indicating the sanitization gap is reachable via a particular content path in the job modal rather than all CI output. |
| Impact | The signals are mixed and warrant prioritized-but-not-emergency handling. CVSS 9.0 (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H) reflects network reachability, low complexity, and a scope-changing total impact, and SSVC rates Technical Impact as 'total' - consistent with full compromise of the victim's session. However, exploitation is meaningfully gated: it requires an authenticated attacker with developer-role permissions (PR:L) AND user interaction from a victim who opens the affected CI job modal (UI:R), which SSVC reflects as Automatable:no and Exploitation:none. EPSS is only 0.30%, aligning with the non-automatable, interaction-dependent nature rather than mass exploitation. Publicly available exploit code raises the practical risk, but this is not confirmed active exploitation and is not in CISA KEV. Net: a real priority for multi-tenant or lower-trust GitLab instances where untrusted developers exist, lower urgency for tightly controlled internal instances. |
| Exploit ScenarioDerived | An attacker with developer-role access to a shared GitLab project crafts a CI job (or job-related content) embedding a malicious HTML/JavaScript payload that is stored and later rendered unsanitized in the CI job modal. When a maintainer or admin opens that job's modal, the script executes in their authenticated session, letting the attacker perform privileged actions (e.g., escalating their own role or exfiltrating tokens). Public exploit code for this issue is available via HackerOne report #3880796, lowering the barrier to reproduction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Aug 19, 2026
Stored cross-site scripting in GitLab CE/EE 19.2 before 19.2.2 lets an authenticated user holding only developer-role permissions inject unsanitized HTML that executes in the browser of a higher-privileged user who opens a CI job modal, enabling privilege escalation. Publicly available exploit code exists (HackerOne report #3880796), though EPSS is modest at 0.30% (22nd percentile) and CISA SSVC records no observed exploitation. The high CVSS 9.0 is driven by a scope change and total confidentiality/integrity/availability impact once the payload runs in a victim's session.
Earlier versions of this analysis (1)
Privilege escalation via stored XSS in GitLab CE/EE 19.2.x allows an authenticated developer-role user to inject unsanitized HTML into a CI job modal, potentially executing arbitrary JavaScript in the browser context of higher-privileged users who view that modal. The scope change in the CVSS vector (S:C) confirms cross-user impact - a developer can effectively act as a victim with elevated permissions. A publicly available exploit exists on HackerOne (report #3880796), and GitLab has released 19.2.2 as the remediated version. No CISA KEV listing at time of analysis.
RemediationAI
Vendor-released patch: upgrade GitLab CE/EE to 19.2.2 or later per the GitLab 19.2.2 patch release (https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-2-released/); this is the primary and recommended fix. If immediate patching is not possible, reduce exposure by tightening who holds developer-role permissions on sensitive projects and by limiting untrusted contributors on multi-tenant instances, since the attack requires a developer-role account to plant the payload - the trade-off is reduced collaboration for lower-trust users. Because exploitation depends on a privileged user opening a CI job modal, advise reviewers/maintainers to be cautious viewing CI jobs from untrusted branches until patched; note this is procedural and unreliable as a sole control. GitLab.com is maintained by the vendor; self-managed operators should schedule the upgrade promptly given publicly available exploit code.
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
GitLab is a self-hosted and SaaS DevOps platform whose CI/CD pipelines surface job metadata and logs through web UI components, including a CI job modal that renders HTML content. The root cause is CWE-79 (improper neutralization of input during web page generation), specifically stored XSS: attacker-controlled content that flows into the CI job modal is not properly sanitized before being rendered as active HTML/JavaScript in another user's browser. The single affected component per the CPE (cpe:2.3:a:gitlab:gitlab:*) is the GitLab application itself; the escalation arises because the malicious script executes in the DOM/session context of a privileged viewer, allowing actions to be performed with that victim's authority.
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:H
Network-reachable stored XSS needs a developer-role account (PR:L) and a victim opening the modal (UI:R); script runs in the victim's browser context, changing scope (S:C) with full impact on the compromised session.
Primary rating from Vendor (GitLab).
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 19.2 before 19.2.2 that under certain conditions could have allowed an authenticated user with developer-role permissions to escalate privileges due to improper sanitization of HTML content rendered in a CI job modal.
Articles & Coverage 2
Executive ViewAI
GitLab CE/EE versions 19.2.0-19.2.1 contain a privilege escalation vulnerability allowing authenticated developers to gain unauthorized administrative access through malicious payloads injected into CI job modals, directly threatening CI/CD pipeline integrity and enabling attackers to deploy malicious code to production infrastructure.
Apply vendor patch.
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.
An 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
Remote code execution in GitLab CE/EE (all versions from 19.2 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2)
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-57392
GHSA-mjv5-423q-gjfg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB