Two GraphQL vulnerabilities in GitLab: code injection and CSRF

Two GraphQL vulnerabilities in GitLab: code injection and CSRF
Research shows how two vulnerabilities in GitLab's GraphQL API allow remote unauthenticated attackers to alter server state. The issues affect self-managed instances running versions 18.2–19.2. GitLab.com and GitLab Dedicated are identified in the article as already fixed.
Code injection through the @gl_introduced directory — vulnerability CVE-2026-19478. When processing a missing field, GitLab creates a GraphQL::Schema::Field without an explicit resolver, after which graphql-ruby invokes a method on the object with the name supplied by the attacker. Without credentials or user interaction, an attacker can modify or delete public projects and user data.
Bypassing GraphQL GET protection via multiplexed requests — vulnerability CVE-2026-19650. Shared IntroducedTracer variables can replace one query's document with another's within a GraphQL multiplex request. As a result, a mutation can be executed via GET as a CSRF attack; it only requires tricking the browser of an authenticated user into sending the request. Fixes were released in versions 18.11.11, 19.0.8, 19.1.6 and 19.2.4.
Vulnerabilities
9.7
CVE-2026-19478
9.7
CVE-2026-19650
Vendors
Gitlab
Positive Technologies
Products
Gitlab
Gitlab.Com
Gitlab Dedicated
Graphql Api
Graphql-Ruby