CVE Tools
GitLab's New Path-Traversal Bug Scored a 10.0. Attackers Found It Before CISA Did.. CVE-2026-85706 lets anyone with no account read arbitrary files off a self-managed GitLab server through the reposit

GitLab's New Path-Traversal Bug Scored a 10.0. Attackers Found It Before CISA Did.

CVE-2026-85706 lets anyone with no account read arbitrary files off a self-managed GitLab server through the repository commits API. GitLab shipped the fix on September 10; watchTowr's honeypots caught probing attempts the next day.

CVE-2026-85706In CISA KEVEPSS today 9.3%CVSS 10.0Open the record

On September 10, 2026, GitLab shipped patch releases 19.3.2, 19.2.6 and 19.1.8 for Community and Enterprise Edition. The headline fix, CVE-2026-85706, needs no username, no password, and no session — just a single HTTP request to an API endpoint most GitLab admins never think about.

10.0CVSS 3.1 scoreAV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N — no auth, no user interaction
~24 hrsPatch to active probingwatchTowr's honeypots caught scans the day after the fix shipped
5thGitLab CVE ever added to CISA KEVFirst one to hit CVSS 10.0 since CVE-2021-22205 in 2021

What's actually broken

GitLab's own advisory describes the root cause plainly: "improper path confinement and missing authentication enforcement" in the repository commits API. The API is supposed to answer questions about a specific commit inside a specific repository — but a crafted path value lets it escape the repository directory entirely and hand back the contents of arbitrary files on the server, without checking whether the caller is logged in at all.

CVE-2026-85706 in one request

  1. Unauthenticated request — No account, token or cookie required
  2. Repository commits API — Path value not confined to the repo directory
  3. Path traversal (CWE-22)
  4. Arbitrary file read — Server-side files outside the repo tree
  5. Secrets / config exposure

Who's exposed

BranchVulnerable versionsFixed in
18.7 – 19.1.xfrom 18.7 up to 19.1.819.1.8
19.2.x19.2 up to 19.2.619.2.6
19.3.x19.3 up to 19.3.219.3.2

The 24-hour clock

  1. GitLab ships 19.3.2, 19.2.6, 19.1.8
    Fixes CVE-2026-85706 alongside CVE-2026-87719 and other issues in the same patch cycle.
  2. watchTowr sees honeypot probes
    Behavioral scans for the path-traversal pattern hit watchTowr's Attacker Eye network less than a day after the patch shipped.
  3. CISA adds CVE-2026-85706 to KEV
    Listed under Binding Operational Directive 26-04, which also requires forensic triage, not just patching.
  4. Federal remediation deadline
    Three-day window for FCEB agencies — the standard BOD 26-04 clock for confirmed exploitation.
We are already seeing behavioral probes for this vulnerability against Attacker Eye. Given the low complexity of exploitation, we assess with high confidence that this vulnerability will rapidly transition to indiscriminate, in-the-wild exploitation.
— watchTowr Labs, Rapid Reaction: CVE-2026-85706

Detecting it

What to check in your logs · Path-traversal probe against the commits APIGitHub

watchTowr published the concrete request pattern to hunt for rather than a signature file — worth building your own rule around it.

Unauthenticated POST requests to the repository commits endpoint carrying a file-path-style parameter designed to escape the repo directory GitLab access logs / reverse-proxy logs in front of self-managed instances

Also patched the same day

The same release fixed CVE-2026-87719, a CVSS 9.9 deserialization bug in GitLab EE's GraphQL subscription serializer. It needs an authenticated account with Duo Chat access, but a crafted GraphQL subscription argument can bypass serialization controls, trigger a server-side object lookup, and expose Advanced Search instance configuration and credentials. Lower barrier to entry than CVE-2026-85706, higher privilege requirement — different threat model, same patch window.

CVE-2026-85706CVE-2026-87719
CVSS10.09.9
WeaknessCWE-22 path traversalCWE-502 deserialization
Auth requiredNoneAuthenticated + Duo Chat access
EditionCE and EEEE only
ImpactArbitrary server file readCredential and config exposure

GitLab's growing KEV file

CVE-2026-85706 is the fifth GitLab CVE our own index shows on CISA's Known Exploited Vulnerabilities catalog — and the first to hit a perfect 10.0 since the ImageTragick-style RCE five years ago.

CVEDisclosedCVSSBug classAdded to KEV
CVE-2021-222052021-04-2310.0Unrestricted file-type RCE via image parser2021
CVE-2023-70282024-01-1210.0Password reset to unverified email2024
CVE-2021-221752021-06-116.8SSRF via internal webhooks2026-02
CVE-2021-399352021-12-136.8SSRF via CI Lint API2026-02
CVE-2026-857062026-09-1210.0Path traversal in commits API2026-09

What to do

  1. Upgrade self-managed GitLab CE/EE to 19.3.2, 19.2.6 or 19.1.8 (or later) immediately — there is no vendor-sanctioned workaround.
  2. Single-node instances will see downtime during the upgrade because database migrations must finish before GitLab restarts; plan the window.
  3. If you can't patch immediately, restrict network access to the instance as a temporary measure only — not a substitute for patching.
  4. Review access and reverse-proxy logs for requests to the repository commits API carrying path-traversal-style parameters, especially from unauthenticated sources.
  5. If you're on GitLab EE with Duo Chat enabled, patch for CVE-2026-87719 in the same pass and review who has Duo Chat access.

CVE and KEV data as of 2026-09-12

We use analytics cookies to see which pages and articles actually help people. Decline and none of them run — the site works the same. What we store