Arbitrary GraphQL mutations via mismatched request parsing
Published Jun 20, 2025 · Updated Jun 23, 2025
CSRF in GitLab CE/EE 16.1.0 through 16.11.4, 17.0.0 through 17.0.2, and 17.1.0 allows remote attackers to run mutations via GET requests. The GraphQL controller screens the multiplex _json parameter for mutations but, for an IntrospectionQuery, executes the separate unchecked query parameter. A logged-in victim must load an attacker-controlled URL or image; the resulting request can create commits or expose CI/CD secrets with the victim's permissions.
Summary
What happened
CSRF in GitLab CE/EE 16.1.0 through 16.11.4, 17.0.0 through 17.0.2, and 17.1.0 allows remote attackers to run mutations via GET requests. The GraphQL controller screens the multiplex _json parameter for mutations but, for an IntrospectionQuery, executes the separate unchecked query parameter. A logged-in victim must load an attacker-controlled URL or image; the resulting request can create commits or expose CI/CD secrets with the victim's permissions.
The record
- CVE
- CVE-2024-4994
- Published
- Jun 20, 2025
- Updated
- Jun 23, 2025
- Vendor
- GitLab
- Product
- GitLab
- Classifications
- CWE-352, CAPEC-62, T1204.001
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jun 20, 2025CVE publishedPublication date reported by the CVE source.
- Jun 23, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=16.1 <16.11.5
- Affected versionversion=17.0.0 <17.0.3
- Affected versionversion=17.1.0 <17.1.1
What conditions does exploitation require?
What is affected?
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- Crafted GraphQL GET request proof of conceptproof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo