---
schema: 1
kind: vulnerability
title: "CVE-2026-85706 — GitLab CE/EE: unauthenticated path traversal in the repository commits API reads arbitrary server files, and honeypots caught exploitation attempts one day after the patch (CVSS 10.0)"
headline: "GitLab's maximum-severity file-read flaw went from patch to in-the-wild probing in about 24 hours"
summary: >
  GitLab shipped 19.3.2, 19.2.6 and 19.1.8 on 2026-09-10, fixing CVE-2026-85706 (CVSS 10.0): improper
  path confinement and missing authentication enforcement in the repository commits API let an
  unauthenticated user read arbitrary files from the GitLab server. Every self-managed CE/EE install
  from 18.7 up to those releases is affected; watchTowr's global honeypot network recorded behavioral
  exploitation probes against the flaw within roughly a day of disclosure, and CISA added it to its
  Known Exploited Vulnerabilities catalog on 2026-09-11.
discovered_at: "2026-09-12T04:09:19Z"
updated_at: null
event_date: "2026-09-10"
run_id: 2026-09-12T0409Z-intel
priority: high
immediate_action: null
tags: [vulnerabilities, actively-exploited, pre-auth, path-traversal, cisa-kev, patch-available]
regions: [global]
sectors: [public-sector, technology]
entities: []
techniques: [T1190, T1552.001]
affected_products: ["GitLab Community Edition", "GitLab Enterprise Edition"]
cves:
  - id: CVE-2026-85706
    cvss: "10.0"
    epss: null
    type: path-traversal
    vector: zero-click
    auth: pre-auth
    status: [exploited, cisa-kev, patch-available]
    affected: "GitLab CE/EE: all versions from 18.7 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2"
    fixed: "19.1.8 / 19.2.6 / 19.3.2"
sources:
  - url: "https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/"
    publisher: "GitLab (vendor security release notes)"
    date: "2026-09-10"
    role: primary
  - url: "https://watchtowr.com/resources/rapid-reaction-gitlab-critical-path-traversal-vulnerability-cve-2026-85706/"
    publisher: "watchTowr"
    date: "2026-09-11"
    role: primary
  - url: "https://www.cert.ssi.gouv.fr/avis/CERTFR-2026-AVI-1160/"
    publisher: "CERT-FR (ANSSI)"
    date: "2026-09-11"
    role: corroborating
  - url: "https://security-hub.ncsc.admin.ch/#/posts/12935"
    publisher: "NCSC Switzerland — Cyber Security Hub (CSH)"
    date: "2026-09-11"
    role: corroborating
  - url: "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
    publisher: "CISA KEV catalog (catalogue version 2026.09.11)"
    date: "2026-09-11"
    role: corroborating
closed_sources: []
evidence:
  - quote: "GitLab has remediated an issue that, under certain conditions, an unauthenticated user could have read arbitrary files from the GitLab server due to improper path confinement and missing authentication enforcement in the repository commits API."
    publisher: "GitLab"
  - quote: "watchTowr Intel is already seeing behavioral probes for this vulnerability against Attacker Eye, our global honeypot network, meaning attackers have already successfully reverse engineered and reproduced the vulnerability and the countdown to indiscriminate, in-the-wild exploitation is on."
    publisher: "watchTowr"
  - quote: "Defenders should also hunt through log files for HTTP POST requests to “/api/v4/projects/{id}/repository/commits/” URIs containing “file.path” parameters to identify potential exploitation attempts."
    publisher: "watchTowr"
verification: multi-source
sourcing_note: null
confidence: high
references: []
deep_dive: false
deep_dive_category: null
org_triage: null
classification:
  reliability: A
  credibility: 1
watchlist_hit: false
actions:
  - "Upgrade every self-managed GitLab CE/EE instance to 19.3.2 / 19.2.6 / 19.1.8 now; GitLab.com is already patched and GitLab Dedicated needs no action. Assume any files a low-privilege or attacker-scripted request could reach — CI/CD credentials, SSH keys, database connection strings, application secrets — may have been read, and rotate them if the instance was internet-reachable and unpatched since 2026-09-10."
updates: []
migrated_from: null
---

GitLab's own patch-release notes name the root cause plainly: "improper path confinement and missing authentication enforcement in the repository commits API" let an unauthenticated caller read arbitrary files from the server ([GitLab, 2026-09-10](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/)). The vulnerability, CVE-2026-85706 (CVSS 10.0, scope-changed, no privileges or user interaction required), affects every self-managed CE/EE release from 18.7 up to 19.1.8, 19.2.6 and 19.3.2, the versions GitLab shipped on 2026-09-10; GitLab.com was already running the patched version, and GitLab Dedicated customers need no action. Depending on file permissions and deployment layout, an exposed file can include configuration data, secrets, tokens, SSH keys and database credentials — turning a file-read primitive into a foothold on the CI/CD and source-control plane GitLab manages ([watchTowr, 2026-09-11](https://watchtowr.com/resources/rapid-reaction-gitlab-critical-path-traversal-vulnerability-cve-2026-85706/)). The flaw was reported through GitLab's HackerOne bug-bounty program by researcher s3ntago.

watchTowr reproduced the vulnerability and validated exposure across client environments within roughly a day of GitLab's patch, and by 2026-09-11 its Attacker Eye honeypot network was already recording behavioral probes against the endpoint — meaning attackers had independently reverse-engineered a working exploit within roughly 24 hours of disclosure ([watchTowr, 2026-09-11](https://watchtowr.com/resources/rapid-reaction-gitlab-critical-path-traversal-vulnerability-cve-2026-85706/)). CISA added the CVE to its Known Exploited Vulnerabilities catalog on 2026-09-11 with a three-day remediation deadline ([CISA KEV, catalogue version 2026.09.11](https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json)), and NCSC Switzerland's own advisory, published earlier that same day, still recorded exploitation status as "unknown" — illustrating how fast the status moved within a single day ([NCSC Switzerland, 2026-09-11](https://security-hub.ncsc.admin.ch/#/posts/12935)). The same release also fixed CVE-2026-87719 (CVSS 9.9), an insecure GraphQL-subscription deserialization issue that lets an authenticated user with Duo Chat access obtain Advanced Search configurations and credentials ([GitLab, 2026-09-10](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/)); it is not KEV-listed or confirmed exploited, but ships in the identical maintenance window.

**Defender takeaway:** patch every self-managed GitLab instance now — the pre-auth, no-interaction nature of this flaw and its confirmed rapid weaponization make it a same-day action, not a routine maintenance-window item, for any organization running GitLab as source-control or CI/CD infrastructure. **Triage:** watchTowr's own hunting guidance is the discriminator — legitimate use of the repository commits API endpoint does not carry a `file.path` parameter; an HTTP POST to `/api/v4/projects/{id}/repository/commits/` containing one is the exploitation signature, whether or not the request succeeded.
