Automated Threat Modeling

GitLab EE CVE-2026-6073: Brief Summary of a High Severity XSS in Duo Agent Output Rendering

A brief summary of CVE-2026-6073, a high-severity stored XSS vulnerability in GitLab Enterprise Edition's Duo Agent output rendering feature, covering technical details, affected versions, and patch information.

CVE Analysis

6 min read

ZeroPath CVE Analysis
ZeroPath CVE Analysis

2026-05-14

GitLab EE CVE-2026-6073: Brief Summary of a High Severity XSS in Duo Agent Output Rendering
Experimental AI-Generated Content

This CVE analysis is an experimental publication that is completely AI-generated. The content may contain errors or inaccuracies and is subject to change as more information becomes available. We are continuously refining our process.

If you have feedback, questions, or notice any errors, please reach out to us.

[email protected]

Introduction

A recently patched cross-site scripting flaw in GitLab Enterprise Edition's Duo Agent output rendering allowed any authenticated user to inject arbitrary JavaScript that would execute in the browsers of other users viewing the same content. The vulnerability carries a CVSS score of 8.7 and a "Changed" scope designation. It could compromise user sessions and expose data well beyond the immediate rendering surface, so any organization running self-managed GitLab EE instances should treat it as a priority patch.

Technical Information

Root Cause

CVE-2026-6073 is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation). The vulnerability is in the Duo Agent output rendering path in GitLab Enterprise Edition. GitLab Duo is the platform's AI-powered assistant. The Duo Agent component generates and returns output, such as code suggestions, summaries, and workflow results, and that output is rendered directly in the browser for users to read.

The flaw is straightforward. The application failed to properly sanitize output generated by the Duo Agent before injecting it into the page. Because this output is rendered in the browser context of whoever views it, an attacker who could influence the content of Duo Agent output could embed arbitrary JavaScript payloads that would then execute when other users interacted with the rendered content.

Attack Flow

Exploitation follows this sequence:

  1. An authenticated attacker identifies that the Duo Agent output rendering surface accepts unsanitized input.
  2. The attacker crafts a malicious payload containing arbitrary JavaScript and introduces it through a vector that influences Duo Agent output.
  3. The malicious output is stored or reflected through the GitLab EE interface.
  4. When another authenticated user views the page containing the rendered Duo Agent output, the injected JavaScript executes in their browser context.
  5. The attacker's script can then access the victim's session tokens, perform actions on their behalf, or exfiltrate data accessible within the victim's browser session.

CVSS Breakdown

The CNA-assigned CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N, yielding a score of 8.7 (High).

MetricValueRationale
Attack VectorNetworkExploitable over the network
Attack ComplexityLowNo advanced conditions required
Privileges RequiredLowAttacker must be authenticated
User InteractionRequiredVictim must view the malicious output
ScopeChangedImpact extends beyond the vulnerable component
ConfidentialityHighSession data and user information at risk
IntegrityHighAttacker can perform actions as the victim
AvailabilityNoneNo direct availability impact

The "Scope: Changed" metric is what sets this vulnerability apart. It means successful exploitation crosses a trust boundary. The attacker compromises the Duo Agent rendering component, but the impact lands in the victim's browser session, where it can potentially reach other systems and data the victim has access to.

Feature Introduction Timeline

GitLab introduced the Duo Agent output rendering feature in GitLab EE version 18.7. The vulnerability has been present in every release from 18.7 onward through the unpatched branches, which left the unsanitized rendering surface exposed for a window of several months.

Patch Information

GitLab fixed CVE-2026-6073 in a coordinated security patch release published on May 13, 2026. Fixed versions shipped for all three active release branches:

Current BranchFixed Version
18.7 through 18.9.618.9.7
18.10 through 18.10.518.10.6
18.11 through 18.11.218.11.3

GitLab.com was already running the patched version at the time of disclosure, and GitLab Dedicated customers needed to take no action. Self-managed GitLab EE administrators should upgrade to one of the patched versions immediately.

The fix improves sanitization of content the Duo Agent returns before the UI renders it. With the agent's output properly escaped or filtered, the browser no longer interprets injected scripts as executable code. That closes the stored or reflected XSS vector the unsanitized rendering surface exposed.

Security researcher joaxcar reported the vulnerability through GitLab's HackerOne bug bounty program. The associated GitLab work item (#596340) remains confidential under GitLab's standard 30-day disclosure policy and is expected to be made public approximately 30 days after the patch release.

The same patches fix more than this one flaw. The May 2026 security update also addresses other high-severity issues, including unauthenticated denial-of-service vulnerabilities and further sanitization gaps in the Banzai markdown sanitizer.

Affected Systems and Versions

This vulnerability is specific to GitLab Enterprise Edition and does not affect the Community Edition.

ProductAffected Version RangeFixed Version
GitLab EE18.7 through 18.9.618.9.7
GitLab EE18.10 through 18.10.518.10.6
GitLab EE18.11 through 18.11.218.11.3

The affected range starts at 18.7, the version that introduced the Duo Agent output rendering feature. All later releases through the unpatched branches are vulnerable. GitLab.com (the SaaS offering) and GitLab Dedicated instances were patched at the time of disclosure and are not at risk.

Vendor Security History

GitLab has a mature security program, including an active bug bounty program on HackerOne. Its handling of CVE-2026-6073 matched its established disclosure practices. It released patches across multiple version branches at the same time, gave a clear rationale for its CVSS scoring in the security advisory, and kept the work item confidential under its standard 30-day disclosure policy. The May 2026 patch release fixed multiple vulnerabilities in one coordinated update, including this XSS flaw and the unauthenticated denial-of-service issues.

References

Detect & fix
what others miss

Works with
  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps Services
  • Gerrit
  • CVS
  • Jira
  • Linear
  • Slack
  • Security Compass
Explore integrations
Security magnifying glass visualization