GitLab CVE-2026-19478 is a critical GraphQL vulnerability affecting self-managed GitLab Community Edition (CE) and Enterprise Edition (EE). Under certain conditions, an unauthenticated user could remotely modify or delete public projects and user data through a GraphQL directive.
GitLab assigned the vulnerability a CVSS score of 9.4 and fixed it in versions 18.11.11, 19.0.8, 19.1.6 and 19.2.4. GitLab.com and GitLab Dedicated were already running patched versions when the issue was disclosed.
For organizations running affected self-managed instances, the priority is to upgrade to a fixed release and verify project integrity. At disclosure, GitLab had not published the specific GraphQL directive or detailed exploitation conditions, and active exploitation had not been disclosed.
GitLab released an ad-hoc critical patch on August 17, 2026, for a vulnerability with a particularly significant integrity impact: unauthenticated modification or deletion of public projects and user data. Tracked as CVE-2026-19478, the vulnerability affects GitLab CE and EE and involves a GraphQL directive. GitLab rated the vulnerability critical, with a CVSS score of 9.4.
The published CVSS vector indicates that the vulnerability is network-accessible, has low attack complexity, requires no privileges and requires no user interaction. However, the precise GraphQL directive and conditions required for exploitation have not been publicly detailed.
That distinction matters. CVE-2026-19478 warrants urgent remediation, but the available disclosure does not establish remote code execution, credential theft, access to private repositories or data exfiltration.
GitLab CVE-2026-19478 at a glance
Detail
CVE-2026-19478
Product
GitLab Community Edition and Enterprise Edition
Severity
Critical
CVSS score
9.4
Attack surface
GraphQL directive
Authentication required
No
User interaction required
No
Confirmed impact
Modification or deletion of public projects and user data under certain conditions
Affected deployments
Vulnerable self-managed GitLab installations
Fixed versions
18.11.11, 19.0.8, 19.1.6, 19.2.4
GitLab.com
Already patched at disclosure
GitLab Dedicated
Already patched at disclosure
Active exploitation
Not disclosed at publication
What is CVE-2026-19478?
CVE-2026-19478 is a critical code injection vulnerability involving a GitLab GraphQL directive. Under certain conditions, an unauthenticated user could remotely modify or delete public projects and user data.
The absence of an authentication requirement is what makes the vulnerability particularly important for operators of affected self-managed GitLab instances. An attacker would not first need a valid GitLab account or authenticated session to reach the documented vulnerable path.
GitLab has not publicly identified the specific GraphQL directive involved or fully described the conditions required for exploitation.
Which GitLab versions are affected by CVE-2026-19478?
CVE-2026-19478 affects GitLab CE and EE releases beginning with version 18.2 across several release branches.
GitLab branch
Affected versions
Fixed release
18.x
18.2 through versions before 18.11.11
18.11.11
19.0
Versions before 19.0.8
19.0.8
19.1
Versions before 19.1.6
19.1.6
19.2
Versions before 19.2.4
19.2.4
Organizations running affected GitLab 18.2 through 18.10 releases should upgrade to a release containing the security fix, following GitLab’s supported upgrade path and current maintenance guidance.
GitLab.com and GitLab Dedicated had already been updated when the vulnerability was disclosed. The immediate patching requirement therefore centers on vulnerable self-managed GitLab deployments.
What can the CVE-2026-19478 GraphQL flaw do?
The confirmed impact is specific: under certain conditions, an unauthenticated user could remotely modify or delete public projects and user data.
Deletion presents an obvious availability concern. Unauthorized modification creates an additional integrity problem.
A public GitLab project can contain source code and configuration used by developers or downstream workflows. An unauthorized change could therefore matter even when the affected project was intentionally public.
This makes remediation a two-part exercise.
First, organizations need to remove the vulnerable code path by upgrading GitLab. Second, they should determine whether important public projects or associated user data show unexpected changes.
Patching fixes the vulnerability. It does not, by itself, establish whether a vulnerable instance was previously targeted.
What is confirmed and what remains unknown?
Keeping confirmed findings separate from plausible attack scenarios is particularly important for CVE-2026-19478 because GitLab has withheld some exploitation details.
What is confirmed
CVE-2026-19478 affects GitLab CE and EE.
The vulnerability involves a GraphQL directive.
GitLab assigned it a CVSS score of 9.4.
The documented attack path does not require authentication.
The published CVSS vector indicates low attack complexity and no required user interaction.
Under certain conditions, an unauthenticated user could modify or delete public projects and user data.
GitLab released fixes in 18.11.11, 19.0.8, 19.1.6 and 19.2.4.
GitLab.com and GitLab Dedicated were already patched when the issue was disclosed.
What has not been established by the disclosure
The available information does not establish that CVE-2026-19478 provides:
Remote code execution.
Credential theft.
Access to private repositories.
CI/CD secret theft.
Data exfiltration.
Compromise of developer endpoints.
Lateral movement into connected systems.
Active exploitation was also not disclosed when the patch was published.
These unknowns should not reduce the urgency of patching. They should prevent organizations from treating hypothetical follow-on activity as confirmed incident behavior.
Why unauthorized changes to public GitLab projects matter
GitLab can occupy a critical position in software development and DevOps workflows. Projects may contain source code, configuration and other engineering assets used by developers and downstream processes.
That makes integrity central to the response to CVE-2026-19478.
If attackers could have changed a vulnerable public project without authentication, administrators should look beyond simply confirming that they have patched the GitLab instance. They should also ask whether important project content remained consistent with its expected state while the instance was vulnerable.
Where appropriate, organizations can compare important repositories and configuration against known-good states and review relevant GitLab activity or audit data for unexplained modifications or deletions.
Backup availability also deserves attention. Organizations should verify that critical project data can be recovered if unauthorized deletion or modification is subsequently identified.
These are precautionary measures. They should not be interpreted as evidence that exploitation occurred.
CVE-2026-19650 fixes a second GitLab GraphQL issue
The same GitLab patch release also addresses CVE-2026-19650, a separate high-severity vulnerability involving the GraphQL multiplex query handler.
The issue stems from improper request validation and, under certain conditions, could allow an unauthenticated user to execute mutations through GET requests. GitLab assigned CVE-2026-19650 a CVSS score of 7.1.
It affects the same version ranges and is addressed by the same fixed releases as CVE-2026-19478.
The two vulnerabilities should not be presented as a combined attack chain. The available disclosure does not establish that attackers can chain CVE-2026-19478 and CVE-2026-19650.
For administrators, however, both reinforce the same remediation decision: upgrade affected self-managed GitLab instances to a fixed release.
What should self-managed GitLab administrators do now?
The primary remediation for CVE-2026-19478 is the GitLab security update. Endpoint, identity or network security controls should not be treated as substitutes for the vendor patch.
Organizations running self-managed GitLab should prioritize the following actions:
Identify self-managed GitLab instances. Determine which GitLab CE and EE versions are currently deployed.
Check the affected version range. Determine whether each self-managed instance falls within one of the affected version ranges, taking the fixed patch releases into account.
Upgrade to a fixed release. Move affected installations to 18.11.11, 19.0.8, 19.1.6, 19.2.4 or a later supported release containing the fix.
Verify the running version. Confirm that the production instance is actually operating on the intended patched build after the upgrade.
Review important public projects. Look for unexplained modifications or deletions where suitable GitLab logging and audit information is available.
Validate project integrity. For operationally significant repositories and configuration, compare current content with known-good versions where appropriate.
Check backup readiness. Verify that important GitLab project data can be recovered if integrity issues are discovered.
GitLab states that these patched versions introduce no new migrations. Eligible multi-node Linux package deployments that meet GitLab’s documented load-balancing and high-availability requirements can follow its zero-downtime upgrade procedure; administrators should verify the requirements and upgrade path for their specific deployment.
IT Admin’s Guide to Patch Management with Hexnode
Learn how centralized patch management can help IT teams identify, deploy, track and manage endpoint updates.
Securing the endpoints used to administer self-managed GitLab
Once organizations patch GitLab and verify the integrity of affected projects, the next step is to examine the security posture of the endpoints used to administer and interact with that infrastructure. Developer and administrator workstations sit alongside these critical DevOps workflows, making consistent endpoint security and compliance an important part of the broader security posture.
Maintaining compliant GitLab administrator endpoints with Hexnode UEM
Hexnode UEM can help organizations maintain policy-driven security and compliance requirements on managed developer and administrator endpoints.
Depending on the managed platform and organizational policy, IT teams can use Hexnode UEM to enforce device configurations and restrictions, manage applications, monitor device compliance, and manage supported OS and application update workflows where available.
For organizations using Microsoft Entra ID, Hexnode UEM can also act as a device compliance partner. Device compliance information from Hexnode can be supplied to Microsoft Entra ID and used in Conditional Access decisions on supported platforms.
This can help organizations restrict protected enterprise resources to devices that satisfy defined compliance requirements.
The distinction is important: device compliance does not remediate CVE-2026-19478. The documented GitLab vulnerability does not require authentication, so endpoint compliance, MFA and Conditional Access cannot replace the GitLab patch.
Instead, these controls strengthen the security posture around the endpoints used to administer sensitive development infrastructure.
When Hexnode XDR becomes relevant to an investigation
Hexnode XDR becomes relevant only if an investigation extends beyond GitLab and there are reasons to examine activity on managed endpoints.
For example, if separate evidence suggests suspicious execution or other potentially malicious activity on a developer or administrator endpoint, Hexnode XDR can support endpoint investigation using historical endpoint events, process analysis and osquery-based queries.
Where investigation identifies malicious endpoint activity, supported response actions can include isolating the affected device, terminating malicious processes and deleting malicious files.
There is currently no basis to say that CVE-2026-19478 itself results in endpoint compromise, malware execution or lateral movement. Hexnode XDR should therefore be positioned as a conditional endpoint investigation and response layer, not as a detection or remediation mechanism for the GitLab GraphQL vulnerability.
Featured resource
Hexnode Unified Endpoint Management
See how Hexnode UEM centralizes endpoint enrollment, configuration, application management and security controls across supported device platforms.
CVE-2026-19478 combines several characteristics that justify prompt remediation: network accessibility, no authentication requirement, low attack complexity and the ability, under certain conditions, to modify or delete public projects and user data.
The response should remain equally precise.
GitLab had not disclosed any active exploitation when it published the patch. It also had not publicly disclosed the affected GraphQL directive or detailed exploitation conditions. The available information does not establish credential theft, private repository access, data exfiltration, endpoint compromise or remote code execution.
Organizations running affected self-managed GitLab instances should upgrade to a fixed GitLab release, verify the integrity of important projects, and preserve relevant evidence for investigation if they find anomalies.
Endpoint security can reinforce that response, but it should remain in its proper role. Hexnode UEM can support the compliance and security posture of managed administrator and developer devices, while Hexnode XDR can support endpoint investigation if evidence indicates that suspicious activity has extended to those systems.
For CVE-2026-19478 itself, however, the first control remains the simplest and most important one: patch GitLab.
Strengthen the endpoints around critical infrastructure
Manage policies, applications, compliance and supported update workflows for administrator and developer endpoints with Hexnode UEM.
I write at the intersection of technology, process, and people, focusing on explaining complex products with clarity. I break down tools, systems, and workflows without any noise, jargon, or the hype.