CVE-2026-85706
September 11, 2026
·
0
Minutes Read

Critical GitLab Path Traversal Vulnerability Allows Unauthenticated Arbitrary File Read

Threat Research
September 11, 2026
·
0
Minutes Read

Critical GitLab Path Traversal Vulnerability Allows Unauthenticated Arbitrary File Read

Threat Research
September 11, 2026
·
0
Minutes Read
Kudelski Security Team
Find out more
table of contents
Share on
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Summary

On September 10, 2026, GitLab released patches for a maximum-severity path traversal vulnerability, tracked as CVE-2026-85706, affecting self-managed installations of GitLab Community Edition (CE) and Enterprise Edition (EE). The flaw allows an unauthenticated attacker to read arbitrary files from a vulnerable server in a single HTTP request under certain conditions. Although GitLab has not flagged the flaw as exploited in the wild, watchTowr's honeypot network observed probing activity roughly one day after the patch release, indicating attackers have reverse-engineered and reproduced the exploit and are searching for internet-exposed, unpatched GitLab servers. Organizations running self-managed GitLab should treat this as an emergency patch scenario.

Affected Systems and/or Applications

Product Affected Versions Patched Version
GitLab CE/EE All versions from 18.7 before 19.1.8 19.1.8
GitLab CE/EE 19.2 before 19.2.6 19.2.6
GitLab CE/EE 19.3 before 19.3.2 19.3.2

Only self-managed installations of GitLab Community Edition (CE) and Enterprise Edition (EE) are impacted. Of these, internet-facing instances are at highest risk, since exploitation requires no credentials or user interaction. GitLab.com is already running the patched version; GitLab Dedicated customers do not need to take action.

Technical Details

The vulnerability is an improper path confinement (path traversal) defect in the repository commits API, compounded by missing authentication enforcement on the affected API endpoint. Because the API fails to both confine user-supplied file paths and consistently enforce authentication, an unauthenticated user can, under certain conditions, cause the application to return the contents of arbitrary files it should never expose.

In practical terms, an unauthenticated attacker sends a single crafted HTTP request and receives file contents back from the server, potentially including configuration files, secrets, and/or other sensitive server-side data. Specifically, a crafted HTTP POST request to /api/v4/projects/{id}/repository/commits/ with the traversal payload contained in the file.path parameter triggers the bug. Successful exploitation results in a remote unauthenticated arbitrary file read. Exfiltrated material can be used directly or chained into deeper compromise of the host and connected systems (e.g., CI/CD infrastructure, source code). The precise "certain conditions" that gate unauthenticated exploitation, any working public proof-of-concept beyond the probing activity observed, and cases of successful exploitation remain unconfirmed at time of writing.

watchTowr reports that its global honeypot network ("Attacker Eye") is already observing behavioral probes consistent with a working exploit for CVE-2026-85706, roughly one day after the patch release; GitLab has not yet flagged confirmed successful exploitation in the wild. Given the low exploitation bar (single unauthenticated HTTP request), rapid weaponization is plausible.

The 19.3.2/19.2.6/19.1.8 release also remediates numerous other issues, including another Critical item: an insecure deserialization issue in the GraphQL subscription serializer (EE), and several High-severity issues such as a buffer overflow in the Unicode conversion wrapper (EE), XSS in the Markdown JSON table renderer (CE/EE), an incorrect authorization issue in the CI/CD environment variable scope matcher (CE/EE), and DoS issues in the GraphQL complexity limiter (CE/EE).

Mitigation

  1. Patch immediately. Upgrade all self-managed GitLab CE/EE installations to 19.3.2, 19.2.6, or 19.1.8 (per your current major branch). GitLab strongly recommends all self-managed installations upgrade immediately.
  2. If you cannot patch immediately:
    • Remove public/internet-facing access to the GitLab instance (restrict to VPN or trusted IP allowlists).
    • Apply targeted network-level mitigations (e.g., WAF/reverse-proxy rules blocking unauthenticated requests to the repository commits API) to reduce immediate risk while an upgrade is scheduled.
  3. Review GitLab/nginx access logs for:
    • HTTP POST requests to /api/v4/projects/{id}/repository/commits/ URIs containing file.path parameters
    • Unusual or unauthenticated requests to the repository commits API generally
  4. If an affected instance was internet-exposed and unpatched, treat contained secrets (configuration files, credentials, keys) as potentially compromised and rotate them after upgrading.

What the Cyber Fusion Center is Doing

The CFC is actively monitoring threat intelligence and reports related to CVE-2026-85706. This advisory will be updated if required.

References

Related Post