Cybercrime
GitLab CVE-2026-19478: How a GraphQL Directive Became an Unauthenticated Delete Button for Public Projects
Andrew Mason
August 25, 2026
Summary
CVE-2026-19478 is a critical code injection vulnerability in GitLab. Rated 9.4, it permits unauthenticated deletion of public projects. GitLab has released patches for affected versions.

GitLab CVE-2026-19478: How a GraphQL Directive Became an Unauthenticated Delete Button for Public Projects

In short: CVE-2026-19478 is a critical code injection vulnerability affecting GitLab. Rated 9.4, it allows unauthenticated deletion of public projects. GitLab has issued patches for affected versions, and exploitation has been confirmed.

What is CVE-2026-19478 and why is it rated 9.4?

CVE-2026-19478 is a code injection vulnerability in GitLab Community and Enterprise Editions. Rated 9.4 on the CVSS 3.1 scale, this vulnerability allows unauthenticated attackers to remotely modify or delete public projects and user data using a GraphQL directive. The high score reflects the ease of exploitation: no credentials, privileges, or user interaction are required, leading to potential widespread disruption.

Which GitLab versions are affected and which are fixed?

The vulnerability affects GitLab versions 18.2 through 18.11.10, 19.0 through 19.0.7, 19.1 through 19.1.5, and 19.2 through 19.2.3. GitLab released fixed versions 18.11.11, 19.0.8, 19.1.6, and 19.2.4 on 17 August 2026. The table below summarizes the affected and fixed versions.

How fast did exploitation begin after the 17 August disclosure?

Exploitation began rapidly following the 17 August 2026 disclosure. Security company watchTowr reproduced the vulnerability within minutes by analyzing the advisory against the patch diff. Within two days, exploitation attempts were observed against its Attacker Eye honeypot network, confirming the swift exploitation timeline.

What can an attacker actually do to a public project?

An attacker exploiting CVE-2026-19478 can modify or delete public GitLab projects without authentication. This allows them to manipulate or remove source code, disrupt collaborative efforts, and potentially inject malicious code into repositories. The impact can range from minor disruptions to significant harm, depending on the project's nature and prominence.

Why are self-managed GitLab instances the real exposure?

GitLab.com's hosted instances are already patched. However, self-managed GitLab instances require action from the users. Without immediate patching, these instances remain vulnerable, making them the real exposure point for attacks. Self-managed teams must prioritize patching or apply interim mitigations to safeguard their environments.

How do you find every internet-facing GitLab instance you own?

Utilizing continuous external attack surface discovery tools can help identify exposed GitLab instances. Conduct an inventory of all self-managed installations, ensuring they are updated and not publicly accessible without necessary configurations. Regular audits and vulnerability scanning further help in finding exposed assets.

What should you do in the next 24 hours if you cannot patch?

If immediate patching isn't feasible, restrict unauthenticated access to the /api/graphql endpoint. Alternatively, temporarily removing public repository access can serve as a mitigation measure. Monitoring network traffic and implementing IP whitelisting can also reduce potential exposure until patching is achieved.

What does this incident teach about the patch-to-exploit window?

The fast exploitation of CVE-2026-19478 underscores the importance of minimising the patch-to-exploit window. Organisations must rapidly apply security updates and monitor for known vulnerabilities to prevent exploitation. Effective asset monitoring can alert teams to vulnerabilities, enabling swift action.

FAQ Section

What is CVE-2026-19478?

CVE-2026-19478 is a critical vulnerability in GitLab that allows unauthenticated deletion of public projects through improper control of code generation.

How are GitLab.com instances protected?

GitLab.com instances were patched by GitLab, leaving only self-managed instances vulnerable until patched by users.

What can be done if patching isn't immediately possible?

Restrict access to the /api/graphql endpoint or remove public repository access temporarily to prevent exploitation.

Why are GraphQL vulnerabilities dangerous?

GraphQL's flexibility can lead to security challenges if directives are improperly configured, as seen with CVE-2026-19478.

How do I ensure my GitLab is secure?

Regular updates, shadow IT detection, and vulnerability scanning are key to securing GitLab instances.

What tools can assist in preventing such incidents?

Continuous external attack surface discovery and OSINT monitoring are effective tools in mitigating security threats.

Conclusion

The GitLab CVE-2026-19478 incident highlights the imperative need for visibility into exposed developer infrastructure. Regular updates, robust monitoring, and attack surface management are crucial. By understanding this incident, DevSecOps leads and engineers can better prepare for and prevent future vulnerabilities.

Andrew Mason

Andrew is an entrepreneur and technology leader with a strong track record of building, scaling, and exiting high-growth technology businesses. He is the founder of several award-winning companies including RandomStorm, Data Protection People, RapidSpike, Pentest People, and DarkInvader, each operating at the forefront of cybersecurity, risk management, and digital resilience. Across these ventures, Andrew has consistently focused on creating commercially successful businesses grounded in deep technical capability and clear market need.

Sign Up for Your Free Account

Unlock full visibility of your external attack surface with DarkInvader’s continuous, real-time monitoring. Create your free account to discover unknown assets, detect emerging risks and stay ahead of potential threats before attackers can exploit them.

Create My Free Account