Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify internet-facing GitLab instance
-
DeliveryCraft GraphQL mutation as GET request URL
-
ExploitDeliver link to authenticated GitLab user via phishing or malicious page
-
InstallVictim browser sends GET request with active session cookie
-
C2GitLab multiplex handler accepts mutation without CSRF validation
-
ExecuteMutation executes as victim user
-
ImpactRepository, pipeline, or user configuration altered
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the targeted GitLab instance is network-reachable by the attacker (or the attacker can serve a page the victim's browser will load while the victim has an active, authenticated GitLab session). The core condition enabling this vulnerability is that GitLab's GraphQL multiplex query endpoint accepts mutation operations delivered via HTTP GET requests - a non-default behavior in compliant GraphQL implementations. The victim must be authenticated to the GitLab instance and must interact with attacker-controlled content (visit a page, load a resource) that causes their browser to issue the crafted GET request. Exploitation is limited by the UI:R requirement: fully automated, zero-interaction exploitation is not possible. Additionally, the attacker does not need a GitLab account of their own. Publicly exposed GitLab instances (internet-facing) face higher risk than instances restricted to internal networks, since delivering the malicious page to a victim is easier in external scenarios. |
| Impact | The CVSS 7.1 High score with vector AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L accurately characterizes the threat: network-reachable, low complexity, no attacker privileges needed, but requiring one victim interaction (UI:R). The high integrity impact reflects the ability to execute arbitrary GraphQL mutations - repository modifications, project deletions, user changes, or CI/CD pipeline manipulation - without any authentication on the attacker's part. The UI:R constraint is a meaningful limiter, requiring social engineering or a watering-hole attack, and it prevents fully automated exploitation. That said, the publicly available exploit code (HackerOne report #3903669) significantly narrows the skill threshold, and even a mid-sized municipal IT team in inowroclaw running a self-hosted GitLab instance should treat this as urgent given the low technical bar now that a POC is public. No KEV listing is confirmed at time of analysis, so exploitation is not yet confirmed as widespread; however, POC availability historically accelerates opportunistic targeting of GitLab instances exposed to the internet. The absence of any confidentiality impact (C:N) is consistent with CSRF semantics - the attacker acts as a proxy through the victim's session and does not directly extract data. |
| Exploit ScenarioDerived | An attacker identifies a GitLab administrator or developer authenticated to a self-hosted GitLab instance and sends them a phishing link or embeds a malicious image tag in a webpage pointing to a crafted GET URL against the GitLab GraphQL multiplex endpoint containing a mutation payload. When the victim's browser follows the link while their GitLab session is active, the mutation executes in their security context - potentially deleting repositories, adding attacker-controlled SSH keys, modifying CI/CD pipeline configurations, or changing access permissions. A publicly available exploit report on HackerOne (https://hackerone.com/reports/3903669) demonstrates the technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
GraphQL multiplex query handling in GitLab CE/EE improperly validates request methods, permitting unauthenticated attackers to trigger state-changing mutations via HTTP GET requests, effectively bypassing CSRF protections. All GitLab CE/EE deployments running versions 18.2 through the affected ranges across the 18.x, 19.0, 19.1, and 19.2 release lines are exposed. A publicly available exploit exists via HackerOne disclosure, and successful exploitation allows an attacker to perform arbitrary data-modifying operations on behalf of any authenticated GitLab user who can be lured to a malicious page.
RemediationAI
The primary fix is to upgrade to a patched GitLab release: 18.11.11, 19.0.8, 19.1.6, or 19.2.4, depending on the currently deployed minor version. The patch release advisory is available at https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-4-released/. For organizations unable to patch immediately, a compensating control is to restrict access to the GitLab instance via network perimeter controls (firewall or reverse-proxy allow-listing) so that only trusted internal networks can reach the GraphQL endpoint - this limits the attacker's ability to deliver cross-origin GET requests from external malicious pages. Note that this workaround does not eliminate internal threat vectors. Disabling GraphQL multiplex queries entirely, if supported by the deployment, would directly address the vulnerable code path but may break legitimate API integrations and should be tested before deployment. GitLab.com customers require no action.
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 vulnerability is rooted in CWE-352 (Cross-Site Request Forgery) within GitLab's GraphQL multiplex query endpoint. In standard GraphQL security practice, mutation operations - which create, update, or delete data - are restricted to POST requests, because browsers enforce the same-origin policy differently for POST versus GET, and CSRF token validation is tied to POST semantics. GitLab's multiplex query handler, which allows batching multiple GraphQL operations in a single request, failed to enforce this POST-only constraint, accepting mutations delivered via GET requests. Because browsers freely issue cross-origin GET requests without preflight checks, an attacker can craft a URL embedding a GraphQL mutation that executes in the security context of any authenticated GitLab session. The affected CPE is cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:*, covering both Community and Enterprise editions across all platforms.
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:N/UI:R/S:U/C:N/I:H/A:L
CSRF via GET requires no attacker privileges (PR:N) but mandates victim browser interaction (UI:R); integrity is high from unrestricted mutations, confidentiality unaffected.
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 18.2 before 18.11.11, 19.0 before 19.0.8, 19.1 before 19.1.6, and 19.2 before 19.2.4 that under certain conditions could have allowed an unauthenticated user to execute mutations via GET requests due to improper request validation in GraphQL multiplex query handling.
Executive ViewAI
GitLab CE/EE deployments running versions 18.2 through 19.2 are vulnerable to remote attacks allowing unauthenticated adversaries to modify repository data and project configurations by tricking authenticated users into visiting a malicious webpage. This vulnerability bypasses GitLab's CSRF protections, exposing all users of affected instances to unauthorized data manipulation without direct system access. No patch is currently available, requiring immediate interim mitigations.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) WAF rules enforcing POST-only requests to GraphQL endpoints, (2) Content Security Policy headers blocking cross-site frame navigation, (3) disable GraphQL multiplex query support if operationally feasible, (4) network segmentation restricting GitLab access to trusted internal IP addresses only.
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
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
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)
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 code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over
Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser
Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows
EUVD-2026-60371
GHSA-78mw-f4q2-924q
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB