CVE-2026-15216 Overview
CVE-2026-15216 is a stored cross-site scripting (XSS) vulnerability in GitLab Community Edition (CE) and Enterprise Edition (EE). The flaw exists in an analytics dashboard component that renders user-controlled data in pagination controls without proper neutralization. An authenticated attacker can inject script content that executes in the context of other users' browser sessions. The issue affects all GitLab versions from 18.2 before 19.0.6, 19.1 before 19.1.4, and 19.2 before 19.2.2. GitLab has released patched versions to address the vulnerability. The weakness is tracked as CWE-79: Improper Neutralization of Input During Web Page Generation.
Critical Impact
Successful exploitation allows attackers to execute arbitrary JavaScript in victim browsers, potentially hijacking sessions, stealing authentication tokens, or performing actions on behalf of authenticated GitLab users including administrators.
Affected Products
- GitLab CE/EE versions 18.2 through 19.0.5
- GitLab CE/EE version 19.1 before 19.1.4
- GitLab CE/EE version 19.2 before 19.2.2
Discovery Timeline
- 2026-08-12 - CVE-2026-15216 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-15216
Vulnerability Analysis
The vulnerability resides in an analytics dashboard component of GitLab CE/EE. The affected component renders user-controlled data within pagination controls without applying appropriate output encoding. When a victim navigates to a dashboard containing attacker-controlled input, the browser interprets the injected payload as executable script rather than inert text. Because exploitation changes the security scope (CVSS scope: Changed), the injected script can affect resources beyond the vulnerable component. The attack requires authenticated access with low privileges and user interaction from the victim.
Root Cause
The root cause is improper neutralization of user-controlled input rendered into HTML pagination controls, classified as CWE-79. The analytics dashboard component fails to apply contextual output encoding when constructing pagination markup. Values controlled by an authenticated user flow into the rendered DOM without HTML entity escaping or content sanitization.
Attack Vector
Exploitation requires an authenticated attacker with permissions to influence the data rendered by the affected analytics dashboard. The attacker seeds malicious payload content that is later reflected into pagination controls. A victim, potentially a higher-privileged user such as a project maintainer or administrator, then loads the dashboard and triggers execution. The injected script runs with the victim's session context and can perform authenticated API calls, exfiltrate tokens, or manipulate repository content. Full technical details are tracked in the GitLab Work Item and HackerOne Report #3830061.
Detection Methods for CVE-2026-15216
Indicators of Compromise
- Unexpected <script> tags, event handlers, or JavaScript URIs stored in analytics dashboard-related fields or database records
- Anomalous outbound requests from user browsers to attacker-controlled domains following dashboard navigation
- Unauthorized GitLab API calls originating from legitimate user sessions, particularly token generation or permission changes
Detection Strategies
- Review web server and application access logs for requests containing HTML or JavaScript metacharacters targeting analytics dashboard endpoints
- Inspect audit logs for privilege changes, personal access token creation, or session activity that correlates with dashboard views
- Deploy Content Security Policy (CSP) reporting to capture blocked inline script executions on GitLab pages
Monitoring Recommendations
- Monitor GitLab audit events for anomalous administrator actions performed shortly after loading analytics dashboards
- Alert on new SSH keys, personal access tokens, or webhook creations that occur outside normal patterns
- Track browser telemetry for cross-origin requests initiated from GitLab domains to unfamiliar external hosts
How to Mitigate CVE-2026-15216
Immediate Actions Required
- Upgrade GitLab CE/EE to version 19.0.6, 19.1.4, or 19.2.2 or later depending on your release branch
- Rotate personal access tokens, session cookies, and SSH keys for accounts that may have accessed affected analytics dashboards
- Audit administrator and maintainer accounts for unauthorized configuration changes or privilege modifications
Patch Information
GitLab has released fixed versions 19.0.6, 19.1.4, and 19.2.2. Administrators should apply the update using standard GitLab upgrade procedures. Refer to the GitLab Patch Release Notes for full upgrade guidance and package availability.
Workarounds
- Restrict access to analytics dashboard features to trusted users until the patched version is deployed
- Enforce a strict Content Security Policy that disallows inline scripts and untrusted script sources on GitLab pages
- Limit low-privileged user ability to submit data that feeds into analytics dashboard pagination until patches are applied
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

