CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Lifecycle Timeline
5DescriptionNVD
An issue has been discovered in GitLab CE/EE affecting all versions from 16.1.0 before 16.11.5, all versions starting from 17.0 before 17.0.3, all versions starting from 17.1.0 before 17.1.1 which allowed for a CSRF attack on GitLab's GraphQL API leading to the execution of arbitrary GraphQL mutations.
AnalysisAI
CVE-2024-4994 is a Cross-Site Request Forgery (CSRF) vulnerability in GitLab's GraphQL API that allows unauthenticated attackers to execute arbitrary GraphQL mutations through a malicious website visited by authenticated GitLab users. This affects GitLab CE/EE versions 16.1.0-16.11.4, 17.0.0-17.0.2, and 17.1.0, with a CVSS score of 8.1 indicating high severity. The vulnerability requires user interaction (clicking a malicious link) but can result in unauthorized data manipulation or system compromise depending on the mutations executed.
Technical ContextAI
The vulnerability exists in GitLab's GraphQL API endpoint implementation, which failed to implement proper CSRF token validation for state-changing operations (mutations). GraphQL mutations are the write/modification operations within GraphQL, analogous to POST/PUT/DELETE in REST APIs. The root cause is CWE-352 (Cross-Site Request Forgery), where the API accepts authenticated GraphQL mutation requests from cross-origin sources without verifying that the request originated from a legitimate GitLab interface. This is a classic CSRF vulnerability pattern where an attacker crafts a malicious webpage containing GraphQL mutation payloads that execute when a logged-in user visits the attacker's site. The vulnerability affects CPE:2.3:a:gitlab:gitlab:* versions spanning multiple release branches (16.1.x, 17.0.x, 17.1.x), indicating the vulnerability was introduced or persisted across multiple major releases.
RemediationAI
Immediate remediation: (1) Upgrade GitLab to patched versions: 16.11.5 or later (for 16.1.x-16.11.x users), 17.0.3 or later (for 17.0.x users), or 17.1.1 or later (for 17.1.x users); (2) Follow GitLab's official upgrade procedure to ensure database migrations and service restarts complete successfully. Short-term mitigations if immediate patching is not possible: (1) Implement Web Application Firewall (WAF) rules to detect and block GraphQL mutation requests originating from cross-origin sources (check for missing or invalid CSRF tokens on GraphQL endpoints); (2) Restrict GraphQL API access to trusted networks using network-level controls; (3) Implement Content Security Policy (CSP) headers to limit the ability of malicious sites to forge requests. Monitor for signs of exploitation by reviewing GraphQL mutation logs for suspicious activity, particularly mutations that alter user permissions, group memberships, or project data from unexpected sources. For GitLab.com SaaS users, GitLab has patched the platform; self-managed instances must apply patches manually.
More from same product – last 7 days
Command injection in Prefect 3.6.18's GitHub integration allows authenticated users to execute arbitrary git commands th
Incorrect authorization enforcement in GitLab CE/EE permits a blocked Project Access Token to continue reading private p
Identity confusion in GitLab EE's Duo AI workflow runners lets an authenticated, low-privileged user cause specific Duo
Denial of service in GitLab CE/EE affects all versions from 17.1 through those prior to 18.10.7, 18.11.4, and 19.0.1, al
Unauthorized private project enumeration in GitLab CE/EE exposes confidential project metadata to unauthenticated networ
Vendor StatusVendor
Ubuntu
Priority: Medium| Release | Status | Version |
|---|---|---|
| xenial | ignored | - |
| jammy | DNE | - |
| noble | DNE | - |
| oracular | DNE | - |
| plucky | DNE | - |
| upstream | needs-triage | - |
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| sid | vulnerable | 17.6.5-19 | - |
| (unstable) | fixed | (unfixed) | - |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2024-54992