CVE-2026-4922 Overview
GitLab CE/EE contains a Cross-Site Request Forgery (CSRF) vulnerability that allows unauthenticated attackers to execute GraphQL mutations on behalf of authenticated users. The flaw affects all versions from 17.0 before 18.9.6, 18.10 before 18.10.4, and 18.11 before 18.11.1. Insufficient CSRF protection on GraphQL mutation endpoints enables attackers to trick authenticated users into performing unintended state-changing operations. The vulnerability requires user interaction, typically by luring a victim to a crafted page while authenticated to GitLab. GitLab released patched versions on April 22, 2026, addressing the issue tracked as [CWE-352].
Critical Impact
Attackers can perform GraphQL mutations as authenticated GitLab users, potentially modifying repositories, projects, user settings, and other resources without consent.
Affected Products
- GitLab Community Edition (CE) versions 17.0 through 18.9.5
- GitLab Enterprise Edition (EE) versions 18.10.0 through 18.10.3
- GitLab CE/EE version 18.11.0
Discovery Timeline
- 2026-04-22 - GitLab releases security patch in version 18.11.1
- 2026-04-22 - CVE-2026-4922 published to NVD
- 2026-04-23 - Last updated in NVD database
Technical Details for CVE-2026-4922
Vulnerability Analysis
The vulnerability stems from insufficient Cross-Site Request Forgery protection on GitLab's GraphQL mutation endpoint. GraphQL mutations are state-changing operations that modify backend data, such as creating tokens, altering project settings, or modifying user information. When CSRF protection is missing or incomplete, an attacker can craft a malicious web page that submits forged GraphQL mutation requests. If an authenticated GitLab user visits the page, the browser automatically attaches session cookies, and the server processes the mutation as a legitimate request from that user.
The attack scope is unchanged, meaning the impact is constrained to the GitLab application context. However, both confidentiality and integrity impacts are rated high because GraphQL mutations can read and modify a wide range of sensitive resources accessible to the victim.
Root Cause
The root cause is the absence or improper validation of anti-CSRF tokens on GraphQL mutation requests [CWE-352]. GraphQL endpoints typically accept JSON payloads via POST requests. Without strict enforcement of CSRF tokens, custom headers, or SameSite cookie attributes, the endpoint cannot distinguish between legitimate user-initiated requests and cross-origin forgeries.
Attack Vector
An attacker hosts a malicious page containing JavaScript or an HTML form that issues a POST request to the GitLab GraphQL endpoint. The payload contains a mutation operation targeting actions the victim is authorized to perform. The victim must be authenticated to the targeted GitLab instance and must visit the attacker-controlled page. Upon visiting, the browser submits the request with the victim's session credentials, and GitLab executes the mutation. Refer to the HackerOne Report #3627285 and GitLab Work Item #594937 for technical specifics.
Detection Methods for CVE-2026-4922
Indicators of Compromise
- GraphQL POST requests to /api/graphql originating from external Referer or Origin headers not matching the GitLab instance domain.
- Unexpected mutation operations in GitLab production logs tied to user sessions without corresponding UI activity.
- Creation of personal access tokens, SSH keys, or deploy tokens not initiated by the user.
- Sudden changes to project visibility, member roles, or repository settings without a matching audit trail entry.
Detection Strategies
- Review GitLab audit logs and production logs for GraphQL mutation calls correlated with anomalous Referer headers.
- Hunt for clusters of mutations from a single user session occurring within seconds of an external HTTP redirect or page load.
- Compare GraphQL mutation activity against user UI interaction telemetry to identify discrepancies.
Monitoring Recommendations
- Enable verbose GraphQL request logging on GitLab instances pending patch deployment.
- Forward GitLab production and audit logs to a centralized SIEM for correlation against web proxy and identity telemetry.
- Alert on newly created tokens, keys, or webhook URLs across all GitLab projects.
How to Mitigate CVE-2026-4922
Immediate Actions Required
- Upgrade GitLab CE/EE to version 18.9.6, 18.10.4, or 18.11.1 immediately, depending on your current major version branch.
- Audit all personal access tokens, SSH keys, deploy tokens, and webhook configurations created since deployment of vulnerable versions.
- Force re-authentication of active sessions after patching to invalidate any sessions that may have been abused.
Patch Information
GitLab released patched versions 18.9.6, 18.10.4, and 18.11.1 on April 22, 2026. Full details are available in the GitLab Patch Release Announcement. Self-managed GitLab administrators should apply the upgrade through their standard package manager or container update workflow. GitLab.com instances were patched by the vendor.
Workarounds
- No official workaround eliminates the vulnerability; upgrading is the only complete remediation.
- Restrict GitLab access to trusted networks via VPN or IP allowlisting to reduce exposure until patching.
- Enforce strict SameSite=Strict cookie policies at the reverse proxy layer where feasible.
- Educate users to log out of GitLab when browsing untrusted sites until the patch is applied.
# Configuration example - Upgrade GitLab Omnibus on Debian/Ubuntu
sudo apt-get update
sudo apt-get install gitlab-ee=18.11.1-ee.0
# Verify the installed version
sudo gitlab-rake gitlab:env:info | grep "GitLab information"
# Restart GitLab services
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


