SecPod

Learn Search

Search across all Learn content

← Back to Security Research
Critical GitLab Flaw Exposes Public Projects to Deletion — Two CVEs Patched, Including High-Severity CSRF

Critical GitLab Flaw Exposes Public Projects to Deletion — Two CVEs Patched, Including High-Severity CSRF

CVE-2026-19478 is a critical code injection vulnerability in GitLab CE/EE that allows an unauthenticated attacker to modify or delete public projects and user data by abusing a GraphQL directive. A second high-severity issue, CVE-2026-19650, involves cross-site request forgery in the GraphQL multiplex query handler. This article examines how the critical vulnerability works, the availability of a public proof-of-concept, the potential impact on self-managed instances, the affected versions, and the security updates released to remediate both issues.

Aug 19, 2026By Bapanapalli Prem Sai Siddhik

Summary

GitLab has released security patches for two vulnerabilities, including a critical-severity code injection flaw (CVE-2026-19478) that can be exploited without authentication to modify or delete public projects and user data. The second vulnerability (CVE-2026-19650) is a cross-site request forgery issue in the GraphQL multiplex query handler. GitLab urges all self-managed installations to upgrade immediately to the patched versions.

Vulnerability Details

CVE ID CVSS Score EPSS Score Type
CVE-2026-19478 9.4 (Critical) 0.72% CWE-94 : Code Injection
CVE-2026-19650 7.1 (High) 0.24% CWE-352 : Cross-Site Request Forgery

Technical Information

Critical Unauthenticated No User Interaction Code Injection Public PoC

CVE-2026-19478 — Code Injection via GraphQL Directive

Under certain conditions, an unauthenticated attacker can abuse a GraphQL directive to remotely modify or delete public projects and user data. The flaw stems from improper handling of the directive during query resolution, which can result in unintended method calls on underlying objects. Because the attack requires no authentication and no user interaction, any internet-facing self-managed instance with publicly accessible projects is at elevated risk.

High Unauthenticated CSRF

CVE-2026-19650 — CSRF in GraphQL Multiplex Query Handler

Improper request validation in the GraphQL multiplex query handler can allow an unauthenticated attacker to execute mutations through GET requests. Exploitation requires user interaction, typically by tricking an authenticated user into visiting a crafted link. While less severe than the critical code injection issue, successful abuse can still lead to unauthorized changes within the application.

Proof of Concept Analysis

A public proof-of-concept for CVE-2026-19478 has been published. It demonstrates how an unauthenticated attacker can abuse a GraphQL directive to trigger unintended method calls on GitLab objects such as projects or users, potentially leading to modification or deletion of public data.

The exploitation flow can be understood in the following high-level stages:

1. Target Identification

The attacker first identifies a publicly visible project or user on the target GitLab instance. Because the vulnerability does not require authentication, any publicly resolvable object can serve as a target.

2. Abuse of the GraphQL Directive

The core of the issue lies in how GitLab processes a specific GraphQL directive related to versioned fields. Under certain conditions, an attacker-controlled field name in the query is incorrectly treated as a method call on the underlying object instead of being rejected as an invalid field. This allows the attacker to influence which method is invoked on the target object during query resolution.

3. Triggering the Vulnerability

The attacker sends a crafted GraphQL request to the publicly accessible GraphQL endpoint. No authentication or user interaction is required. When the vulnerable code path is reached, the unintended method is executed in the context of the targeted public project or user.

4. Impact on the Target

Depending on the method that gets invoked, the result can range from relatively benign state changes (useful for detection) to more serious actions such as modification or deletion of public projects and associated user data.

5. Verification

Successful triggering of the vulnerability can be observed through changes in the targeted object’s state, for example unexpected updates or removal of a public project. Patched instances correctly reject the invalid field and return a standard GraphQL validation error.

The existence of a public proof-of-concept increases the risk of automated scanning against unpatched self-managed instances.

Exploitation Flow (High-Level)

STEP 1
Target
Identification
STEP 2
Abuse of the
GraphQL Directive
STEP 3
Triggering the
Vulnerability
STEP 4
Impact on
the Target
STEP 5
Verification

No authentication or user interaction is required. The attack is possible against any publicly visible project or user on a vulnerable self-managed instance.

Impact

  • CVE-2026-19478
    Unauthenticated remote modification or deletion of public projects and user data. This can lead to data loss and potential supply-chain risk on public repositories.
  • CVE-2026-19650
    Unauthorized GraphQL mutations if a user can be social-engineered into interacting with a crafted request.

Affected and Fixed Versions

The vulnerabilities affect GitLab Community Edition and Enterprise Edition in the following ranges:

  • 18.2 before 18.11.11
  • 19.0 before 19.0.8
  • 19.1 before 19.1.6
  • 19.2 before 19.2.4

The issues have been fixed in the following versions:

  • 19.2.4
  • 19.1.6
  • 19.0.8
  • 18.11.11

GitLab.com and GitLab Dedicated are already running the patched versions. Organizations running any affected version should upgrade to one of the fixed releases listed above.

MITRE ATT&CK Mapping

Technique ID Technique Name Tactic
T1190 Exploit Public-Facing Application Initial Access
T1059 Command and Scripting Interpreter (GraphQL directive injection) Execution
T1485 Data Destruction (project / user data deletion) Impact

Mitigation and Recommendations

GitLab has released security updates to remediate both vulnerabilities.

  • Upgrade to fixed versions depending on the current branch.
  • Until the upgrade can be applied, restrict external access to the GraphQL endpoint where feasible.
  • Monitor for unusual modifications to public projects or user accounts.

There is no complete workaround for these issues. Applying the vendor security updates is the recommended path to full remediation.

Self-managed GitLab administrators should treat CVE-2026-19478 as an emergency update. The vulnerability requires no authentication and no user interaction, and a public proof-of-concept is available. GitLab.com and GitLab Dedicated customers do not need to take action.

Instantly Fix Risks with Saner Patch Management

Saner patch management is a continuous, automated, and integrated solution that helps you quickly remediate risks, including critical third-party application updates. It supports Windows, Linux, macOS, and 550+ third-party applications.

You can stage patches in a safe testing environment before production deployment and roll back if needed.

Experience the fastest and most accurate patching software here.

Featured Posts

Open Operation CameraSwarm: Inside the Toolkit Behind 14,530 Compromised Dahua Cameras
Operation CameraSwarm: Inside the Toolkit Behind 14,530 Compromised Dahua Cameras

CVE Research

Operation CameraSwarm: Inside the Toolkit Behind 14,530 Compromised Dahua Cameras

A single operator compromised 14,530+ Dahua cameras across Ukraine and Russia in 35 days, chaining credential brute-force, a CVE-2021-33044/33045 authentication bypass, and P2P relay abuse to plant a persistent backdoor and harvest transferable admin access.

Aug 21, 2026

Open No Password Needed: macOS Screen Sharing Flaw (CVE-2026-65400) Used to Deploy Monero Miners
No Password Needed: macOS Screen Sharing Flaw (CVE-2026-65400) Used to Deploy Monero Miners

CVE Research

No Password Needed: macOS Screen Sharing Flaw (CVE-2026-65400) Used to Deploy Monero Miners

Aug 19, 2026

Open Evooo1Bot: Mirai-Based Linux Botnet Turns Edge Devices Into SOCKS5 Proxies
Evooo1Bot: Mirai-Based Linux Botnet Turns Edge Devices Into SOCKS5 Proxies

CVE Research

Evooo1Bot: Mirai-Based Linux Botnet Turns Edge Devices Into SOCKS5 Proxies

Aug 19, 2026

Open Inside the GeoServer Zero-Day: From jsonArrayContains to Potential RCE
Inside the GeoServer Zero-Day: From jsonArrayContains to Potential RCE

CVE Research

Inside the GeoServer Zero-Day: From jsonArrayContains to Potential RCE

Aug 17, 2026