Skip to main content
Vulnerability Database/CVE-2026-85529

CVE-2026-85529: GitLab Information Disclosure Vulnerability

CVE-2026-85529 is an information disclosure vulnerability in GitLab CE/EE that allows unauthenticated users to read internal notes on public projects. This article covers the technical details, affected versions, and remediation steps.

Published:

CVE-2026-85529 Overview

CVE-2026-85529 is an improper authorization vulnerability in the GitLab Community Edition (CE) and Enterprise Edition (EE) GraphQL API. Under specific conditions, an unauthenticated attacker can read internal notes and confidential system notes attached to public projects. The flaw affects GitLab CE/EE versions 19.2 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2. GitLab remediated the issue in its 19.4.2 patch release. The weakness maps to CWE-863: Incorrect Authorization.

Critical Impact

Unauthenticated remote attackers can disclose confidential project notes intended only for internal GitLab users, exposing sensitive engineering discussions and system-generated metadata.

Affected Products

  • GitLab CE/EE 19.2 through 19.2.7
  • GitLab CE/EE 19.3 through 19.3.4
  • GitLab CE/EE 19.4 through 19.4.1

Discovery Timeline

  • 2026-10-13 - CVE-2026-85529 published to the National Vulnerability Database
  • 2026-10-14 - Last updated in NVD database

Technical Details for CVE-2026-85529

Vulnerability Analysis

The vulnerability resides in GitLab's GraphQL API layer. GitLab exposes resources through GraphQL types that resolve notes attached to issues, merge requests, and other work items. For public projects, the API must distinguish between notes marked as internal or confidential and notes that are publicly visible. The authorization check that enforces this boundary is incomplete for certain query paths. An unauthenticated client can therefore request note content that should be restricted to project members with sufficient role, including engineering discussions, triage comments, and system-generated audit entries.

System notes record automated actions such as label changes, state transitions, and reviewer assignments. When those actions involve confidential issues, the derived system notes inherit confidential status. This flaw bypasses that inheritance in the GraphQL resolver, revealing internal context about security triage, planned fixes, and personnel actions.

Root Cause

The root cause is missing or incomplete authorization logic in the GraphQL resolver that returns notes for public projects. GitLab's REST endpoints apply policy checks that filter internal and confidential notes based on the requesting user's role. The GraphQL path does not consistently apply the equivalent Note policy, allowing an anonymous session to retrieve records that should be filtered server-side.

Attack Vector

Exploitation requires only network access to a vulnerable GitLab instance that hosts at least one public project. The attacker issues an unauthenticated GraphQL query targeting notes on public issues or merge requests. No user interaction or privileges are needed. See the HackerOne Report #3975416 and GitLab Work Item #627709 for additional technical context.

Detection Methods for CVE-2026-85529

Indicators of Compromise

  • Unauthenticated POST requests to /api/graphql originating from unfamiliar IP addresses or automation user agents.
  • GraphQL query bodies that reference notes, systemNoteMetadata, discussions, or confidential fields on Issue, MergeRequest, or WorkItem types.
  • Spikes in GraphQL request volume targeting public project namespaces without an associated authenticated session token.

Detection Strategies

  • Enable GitLab's structured graphql_json.log and alert on queries that select note fields while the username field is null or absent.
  • Correlate web server access logs with application logs to identify GraphQL calls lacking a PRIVATE-TOKEN, Authorization: Bearer, or valid session cookie.
  • Baseline normal GraphQL traffic per project and flag deviations in note-related field selection.

Monitoring Recommendations

  • Forward GitLab application, production, and GraphQL logs to a centralized analytics platform for retention and query.
  • Monitor outbound data volume from public project API endpoints to detect bulk enumeration of notes.
  • Track GitLab version metadata across self-managed instances to confirm patch coverage over time.

How to Mitigate CVE-2026-85529

Immediate Actions Required

  • Upgrade self-managed GitLab CE and EE deployments to 19.4.2, 19.3.5, or 19.2.8 depending on the installed release line.
  • Audit public projects for internal or confidential notes that may have been exposed prior to patching.
  • Rotate any secrets, credentials, or tokens that were discussed in internal notes attached to public projects.

Patch Information

GitLab released fixed versions 19.4.2, 19.3.5, and 19.2.8 that correct the GraphQL authorization logic. Review the GitLab Patch Release 19.4.2 advisory for upgrade instructions, package availability for Omnibus and Helm deployments, and release notes. GitLab.com SaaS tenants are already running the patched version.

Workarounds

  • Temporarily set affected projects to private or internal visibility to prevent anonymous GraphQL access to project notes.
  • Restrict access to the /api/graphql endpoint at the reverse proxy or Web Application Firewall layer, limiting it to authenticated sessions where feasible.
  • Remove sensitive content from existing internal notes on public projects until the upgrade is complete.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.