CVE-2026-18433 Overview
CVE-2026-18433 is an authorization flaw in GitLab Enterprise Edition (EE) that allows authenticated users to read policy configuration from namespaces they are not authorized to access. The issue stems from incorrect authorization checks in a GraphQL query. GitLab tracks the underlying weakness as CWE-863: Incorrect Authorization.
The vulnerability affects GitLab EE versions 19.1 before 19.1.4 and 19.2 before 19.2.2. Exploitation requires an authenticated account but no user interaction, and successful abuse discloses namespace policy configuration data.
Critical Impact
Authenticated attackers can read security policy configurations from GitLab namespaces they do not own, enabling reconnaissance of security controls, scan schedules, and enforcement rules across an organization.
Affected Products
- GitLab Enterprise Edition (EE) versions 19.1 through 19.1.3
- GitLab Enterprise Edition (EE) versions 19.2 through 19.2.1
- GitLab self-managed EE instances running the affected releases
Discovery Timeline
- 2026-08-12 - CVE-2026-18433 published to NVD
- 2026-08-12 - Last updated in NVD database
- Reported through the GitLab HackerOne bug bounty program (HackerOne Report #3776182)
- Patched in GitLab Patch Release 19.2.2
Technical Details for CVE-2026-18433
Vulnerability Analysis
The flaw exists in a GraphQL resolver in GitLab EE that returns policy configuration data for a namespace. Under specific conditions, the resolver returns the policy payload without confirming that the requesting user holds authorization on the target namespace.
GitLab security policies define scan execution rules, merge request approval requirements, and pipeline execution policies. Disclosure of these configurations reveals how an organization enforces application security controls. Confidentiality impact is limited, and the flaw does not enable data modification or service disruption.
Because the attack traverses the network and only requires standard authenticated GraphQL access, any GitLab user on an affected instance can query the vulnerable field. See GitLab Work Item #607556 for the internal tracking record.
Root Cause
The root cause is a missing or incorrectly scoped authorization check in a GraphQL query resolver serving policy configuration [CWE-863]. GitLab typically enforces access through Declarative Policy predicates tied to the current user and target namespace. In this resolver, the predicate was either omitted or evaluated against the wrong subject, so the query returned data regardless of the caller's namespace membership.
Attack Vector
An attacker authenticates to a vulnerable GitLab EE instance as any user, including a low-privileged account. The attacker then issues a GraphQL query targeting the policy configuration field for a namespace they do not belong to. The server returns the policy configuration, revealing enforcement rules for a namespace outside the attacker's authorized scope. No user interaction is required from the victim.
No public proof-of-concept code is available. Detailed technical mechanics remain restricted in the linked HackerOne report and GitLab issue tracker.
Detection Methods for CVE-2026-18433
Indicators of Compromise
- GraphQL POST requests to /api/graphql from authenticated users referencing policy-related fields for namespaces outside the user's group membership.
- Unusual volume of GraphQL introspection or enumeration queries from a single authenticated session.
- Access log entries showing users querying securityPolicyProject, scanExecutionPolicies, or similar policy fields tied to unrelated namespaces.
Detection Strategies
- Correlate GitLab production logs (production_json.log) with user group membership to flag policy field access outside authorized namespaces.
- Enable and review GitLab audit events for group and project policy views, then baseline normal query patterns per user.
- Inspect GraphQL request bodies at a reverse proxy or WAF to identify queries requesting policy configuration across multiple namespaces from a single account.
Monitoring Recommendations
- Ship GitLab application, audit, and API logs to a centralized analytics platform for cross-namespace query correlation.
- Alert on authenticated accounts issuing GraphQL queries at rates or breadth inconsistent with their historical behavior.
- Track patch level of self-managed GitLab instances and generate an alert whenever a host reports a version below 19.1.4 or 19.2.2.
How to Mitigate CVE-2026-18433
Immediate Actions Required
- Upgrade GitLab EE self-managed instances to 19.1.4, 19.2.2, or later without delay.
- Audit recent GraphQL access logs for queries targeting policy fields across namespace boundaries.
- Rotate or review any secrets referenced within namespace security policies that may have been exposed to unauthorized readers.
Patch Information
GitLab addressed the issue in the GitLab Patch Release 19.2.2 and the corresponding 19.1.4 release. GitLab.com SaaS tenants receive the patch automatically. Self-managed administrators should follow the standard GitLab upgrade procedure for their installation method (Omnibus, Helm, Docker, or source).
Workarounds
- No official workaround is published; upgrading to a fixed release is the supported remediation.
- Restrict instance access to trusted users only, since exploitation requires an authenticated account.
- Temporarily reduce use of sign-up features and review guest or minimal-access accounts on internet-facing GitLab instances until patched.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

