Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate with Developer role in target group
-
DeliveryCreate or reuse security policy test pipeline
-
ExploitTrigger pipeline within group project
-
InstallBypass CI/CD variable scope validation
-
C2Job inherits Maintainer-scoped protected variables
-
ExecuteExfiltrate secrets from job log
-
ImpactReuse tokens for lateral movement
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 | Exploitation requires (1) a GitLab EE instance at an affected version, (2) an authenticated account with the Developer role in a group whose project has security policies that can be exercised through a policy test pipeline, and (3) protected CI/CD variables configured in that project and scoped to a higher-privileged role (Maintainer/Owner) or to an environment the policy pipeline resolves into. The attacker does not need Maintainer rights, user interaction, or a non-default network position - AV:N/AC:L/UI:N/PR:L applies directly. What limits exploitation: the Developer membership itself is the gatekeeper, so purely anonymous or self-registered users on instances with restricted sign-up are not exposed; the target group must actually define security/policy pipelines and role-scoped protected variables, which many smaller groups never configure; and Community Edition is not named in the advisory, so CE-only deployments may be unaffected pending verification. |
| Impact | CVSS 3.1 rates this 8.5 (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N), with the score driven by the scope change and integrity impact rather than any unauthenticated exposure - the attacker must still hold a valid Developer account, so this is privilege escalation inside a group rather than an open door. That PR:L precondition is the main brake on real-world risk: an outside attacker would first need to obtain or be granted developer-level access, which typically means a compromised low-privilege account or a malicious insider. Public exploit details are available through the cited HackerOne report, which raises the likelihood of rapid weaponization against unpatched instances, but there is no CISA KEV entry and no EPSS score was supplied with this record, so widespread automated exploitation is not confirmed; even a mid-sized municipal IT team running an internal GitLab instance in leszno should treat it as urgent, yet can fold the upgrade into its normal maintenance window rather than declaring a live emergency. Note the tension in the data: the vendor vector assigns only C:L for confidentiality even though the disclosed objects are protected CI/CD variables that often hold deployment keys and tokens - if those secrets are broadly scoped, real confidentiality impact may exceed the scored value, and vice versa if protected variables contain only non-sensitive values. Under SSVC this reads as Exploitation: PoC, Automatable: yes, Technical Impact: partial, which for most organizations justifies out-of-cycle remediation; the EPSS/KEV gap is the single biggest uncertainty in this assessment. |
| Exploit ScenarioDerived | An attacker who holds a Developer role in a group project - a compromised contractor account, a low-privilege insider, or an account granted via a weak onboarding process - creates or reuses a security policy test pipeline in a project within their group. Because the scope check is missing, the resulting job inherits protected CI/CD variables normally reserved for Maintainer or Owner roles, and a trivial script step echoing the environment dumps those secrets into the job log or to an external endpoint. With AC:L, PR:L and UI:N on a network-reachable instance, the whole chain can be scripted end-to-end, and a public PoC is already referenced. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Insufficient scope validation in GitLab Enterprise Edition lets an authenticated user holding only Developer permissions run security policy test pipelines inside projects in their own group and read protected CI/CD variables that are meant to be restricted to Maintainer or Owner roles. All EE releases from 19.0 up to 19.1.8, 19.2.6 and 19.3.2 are affected, and GitLab shipped fixes in those patch releases. Publicly available exploit code exists (a HackerOne report is referenced), but there is no confirmed active exploitation and no CISA KEV listing.
RemediationAI
Upgrade to a fixed release: GitLab EE 19.1.8, 19.2.6 or 19.3.2 (or later) per the vendor advisory at https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/ - GitLab's monthly patch release is the primary fix and there is no separate hotfix to apply. If an immediate upgrade is not possible, reduce exposure by auditing and trimming Developer-role membership in groups that own security policies, temporarily removing protected CI/CD variable scoping from any policy test pipeline that a Developer can trigger (the trade-off is that Maintainers also lose the convenience of scoped variables until the setting is restored), and disabling or restricting the ability for Developers to run policy test pipelines. Treat the secrets in affected protected variables as potentially compromised: rotate deployment keys, tokens and cloud credentials that were visible to Developer-role users, and review CI job logs and audit events for unexpected variable dumps. Because public exploit detail exists, prioritize internet-reachable or multi-tenant GitLab instances and check audit logs for policy-test-pipeline runs by non-Maintainer accounts before and after patching.
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 flaw lives in GitLab's CI/CD security policy machinery - the components that let groups define pipeline execution, scan execution and scan result policies and then run a 'policy test pipeline' to validate them. Under CWE-863 (Incorrect Authorization), the policy test pipeline path performed insufficient scope validation: it did not properly check whether the requesting user's role entitled them to the CI/CD variables bound to that pipeline context, so variables configured as protected and scoped to higher-privileged roles were injected into jobs a Developer could trigger. GitLab's own CPE entry (cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:*) is generic and does not separate Community from Enterprise Edition, but the advisory explicitly scopes the issue to GitLab EE, i.e. the Premium/Ultimate tiers where protected variables and security policies are configured. The vulnerable primitive is authorization-context confusion between the user who triggers a pipeline and the role scope attached to a secret, not a memory-safety or injection defect.
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:N/S:C/C:L/I:H/A:N
Network-reachable but requires a Developer account (PR:L, AC:L); exposed objects are protected CI/CD secrets so confidentiality is the dominant impact, with limited pipeline integrity effects.
Primary rating from Vendor (GitLab).
CVSS VectorVendor: GitLab
Lifecycle Timeline
2DescriptionCVE.org
GitLab has remediated an issue in GitLab EE affecting all versions from 19.0 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2 that, under certain conditions could have allowed an authenticated user with developer permissions to execute a policy test pipeline on projects within their group and access protected CI/CD variables restricted to higher-privileged roles, due to insufficient scope validation.
Articles & Coverage 1
Executive ViewAI
GitLab Enterprise Edition deployments on versions 19.0 through 19.1.8, 19.2.6 and 19.3.2 allow users with only Developer-level group permissions to run security policy test pipelines in their own group's projects and read protected CI/CD variables that are intended to be limited to Maintainer or Owner roles. This effectively converts a routine developer account - the most widely granted role in most organizations - into a path for harvesting the credentials, tokens and secrets that protect production systems and third-party integrations. Any organization running self-managed GitLab EE with broadly distributed Developer access should treat this as a priority exposure because the barrier to abuse is low and publicly available exploit code exists (no confirmed active exploitation and no CISA KEV listing at time of analysis), with impact driven by the sensitivity of the secrets stored in project CI/CD configuration.
Apply vendor patch: GitLab EE 19.1.8, 19.2.6 or 19.3.2, per the referenced fix releases. Where upgrading within 24 hours is not feasible, restrict or temporarily revoke Developer-role memberships in groups holding sensitive protected CI/CD variables, re-scope variables so they are exposed only to protected branches and Maintainer/Owner-level pipelines, rotate any secrets that may have been accessible, and monitor for unexpected security policy test pipeline executions.
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
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)
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 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-80221
GHSA-4gg6-pm69-gwm2
NVD
CVE.org
EPSS
VulDB
Exploit-DB