Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach GitLab GraphQL API endpoint
-
DeliveryCraft job-trace query bypassing authorization
-
ExploitTrigger conditional missing-authz path
-
ExecutionRead CI/CD job trace output
-
ImpactHarvest exposed sensitive variable values
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires reaching GitLab's GraphQL API on a CE/EE instance running an affected version (15.11 up to before 19.2.7, 19.3 before 19.3.3, or 19.4 before 19.4.1) that has CI/CD job traces containing sensitive variable values. Exploitation is unauthenticated but conditional: the CVSS AC:H and the description's 'under certain conditions' indicate the authorization gap only manifests in specific, non-universal states (likely tied to particular project/job visibility or pipeline configurations not enumerated in available data). Limiting factors: high attack complexity, dependence on those specific conditions being present, impact confined to reading trace contents (no write/exec), and mitigation by upgrading to a fixed release. |
| Impact | This is a low-severity, real-but-modest issue rather than an urgent priority. The CVSS 3.1 base score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) captures the tension well: it is network-reachable and unauthenticated (PR:N), but exploitation is gated by high attack complexity (AC:H - the description's 'under certain conditions' qualifier), and impact is limited to partial confidentiality (C:L) with no integrity or availability effect. A public exploit exists (HackerOne report #3590929), which raises exploitability signal, but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active or widespread exploitation. The self-hosted nature and vendor-confirmed patch mean the practical risk is bounded to leaking sensitive CI/CD variable values (e.g., tokens/secrets in job traces) - meaningful for exposed instances but constrained by the conditional trigger. Signals are internally consistent; the main caveat is that the 'certain conditions' are not enumerated in the available data, so defenders cannot precisely scope which instances are vulnerable without the vendor advisory. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted GraphQL query to a self-hosted or GitLab.com project that, under specific conditions, is not properly authorization-checked, retrieving CI/CD job trace output that contains masked or embedded sensitive variable values such as deployment tokens or API secrets. Because the flaw is remotely reachable without credentials, the attacker needs only network access to the GraphQL endpoint; however, the high attack complexity means the vulnerable conditions must be present. A public proof-of-concept is available via HackerOne report #3590929. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 29, 2026
Unauthenticated read access to CI/CD job traces in GitLab CE/EE can expose sensitive CI/CD variable values because the GraphQL API fails to enforce proper authorization for trace retrieval, affecting all versions from 15.11 before 19.2.7, 19.3 before 19.3.3, and 19.4 before 19.4.1. Publicly available exploit code exists, with details disclosed through HackerOne report 3590929, and the bug was reported by GitLab itself; no confirmed active exploitation (CISA KEV) has been recorded. The CVSS score is only 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N), reflecting high attack complexity and a confidentiality-only impact limited to reading trace contents, so this is a real but modest issue that manifests only under specific, non-universal conditions rather than an urgent, universally exploitable flaw.
RemediationAI
Vendor-released patches are available: upgrade to 19.2.7, 19.3.3, or 19.4.1 according to your release track, as documented in the patch release notes at https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-1-released/; the underlying work item is at https://gitlab.com/gitlab-org/gitlab/-/work_items/594294. If upgrading immediately is not possible, compensating controls include restricting network access to the GitLab GraphQL endpoint (for example blocking /api/graphql at the reverse proxy or WAF for untrusted networks), though this will break legitimate API clients, integrations, and some CI/CD automation that depend on GraphQL; reducing the blast radius by rotating any secrets that have ever appeared in CI/CD job traces and by converting sensitive values to properly masked and protected CI/CD variables, accepting that masking is not a substitute for the authorization fix where trace contents are concerned; and temporarily restricting job trace visibility in pipeline settings, which degrades developer troubleshooting. Because exploitation is conditional (high attack complexity, specific non-universal configurations) and impact is limited to reading trace contents with no write or execution primitive, the fix is a routine maintenance upgrade rather than an emergency action, but any trace that already leaked sensitive variable values should be treated as a credential-exposure event and the corresponding secrets rotated.
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 root cause is CWE-862 (Missing Authorization): GitLab's GraphQL API does not correctly enforce authorization when serving CI/CD job trace content, so a request that should require project or job-level privileges can return trace data. Job traces are the console output of CI/CD pipeline jobs, and CI/CD variables - including values that projects intend to keep sensitive - can end up in that output, which is why an authorization gap here translates directly into potential disclosure of secret values. The affected component is GitLab Community Edition and Enterprise Edition (CPE cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:* matches the 15.x/19.x release lines tracked by the vendor) across the GraphQL API surface. Two characteristics shape the practical risk: the vector is network-reachable and unauthenticated (PR:N), but attack complexity is rated high (AC:H) and the vendor description qualifies the flaw as occurring 'under certain conditions,' indicating the missing check only manifests in particular project, job-visibility, or pipeline configurations that are not enumerated in the available data. The impact is confined to confidentiality (C:L), with no integrity or availability effect and no scope change; there is no write, privilege-escalation, or code-execution primitive described.
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:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Network-reachable and unauthenticated (AV:N/PR:N), but 'under certain conditions' warrants AC:H; impact is partial confidentiality only (C:L) with no integrity or availability effect.
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 15.11 before 19.2.7, 19.3 before 19.3.3, and 19.4 before 19.4.1 that under certain conditions could have allowed an unauthenticated user to read CI/CD job trace contents containing sensitive variable values due to improper authorization enforcement in the GraphQL API.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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)
Remote code execution in GitLab CE/EE can be triggered by a specially crafted regular expression processed through a vul
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 command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over
EUVD-2026-88690
GHSA-75vf-vmx4-frc7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB