Critical
GitLab, CVE-2026-85706, Path Traversal, CISA KEV, Arbitrary File Read, DevOps Security

GitLab CVE-2026-85706: CVSS 10 Path Traversal in KEV
GitLab CVE-2026-85706 is a CVSS 10.0 unauthenticated path traversal letting attackers read arbitrary files in one request. It is in CISA KEV with in-the-wild probes. Patch now.
GitLab CVE-2026-85706 is a maximum-severity, CVSS 10.0 path traversal flaw that lets an unauthenticated attacker read arbitrary files, such as credentials, secrets, and configuration, from a vulnerable GitLab server in a single HTTP request, and it is now in the CISA Known Exploited Vulnerabilities catalog with active in-the-wild probing reported. The flaw stems from improper path confinement and missing authentication enforcement in the repository commits API. GitLab urged all self-managed installations to patch immediately, releasing fixes in Community and Enterprise Edition versions 19.3.2, 19.2.6, and 19.1.
The bug was found by a researcher using the handle s3ntago and reported through GitLab's HackerOne program. While GitLab had not itself confirmed exploitation at disclosure, security firm watchTowr reported one day later that attackers were already scanning the internet for unpatched, exposed GitLab servers. CISA added CVE-2026-85706 to KEV on September 11, 2026 with a September 14 remediation due date, which is an unusually short fuse and a strong signal of real risk.
GitLab also patched a second critical flaw in the same release, CVE-2026-87719, an insecure deserialization weakness in the GraphQL subscription serializer that affects Enterprise Edition and lets authenticated users with Duo Chat access steal credentials and Advanced Search configuration. GitLab.com and GitLab Dedicated are already patched; the urgency is for self-managed servers.
How do you detect exploitation of CVE-2026-85706?
watchTowr advises hunting log files for HTTP POST requests to /api/v4/projects/{id}/repository/commits/ URIs that contain file.path parameters, which are the fingerprint of an attempted arbitrary file read. Because the exploit works in a single request and reads files rather than writing them, network and application logs are often the clearest evidence, so reviewing them for that pattern is the fastest way to gauge whether a server was probed or read.
Why is a file-read flaw rated a perfect 10.0?
Because on a source-code platform, arbitrary file read is effectively a master key. GitLab servers hold source code, CI/CD variables, deploy tokens, and secrets, so reading arbitrary files can expose the credentials that unlock everything downstream, and the flaw needs no authentication and a single request to do it. The scope change in the CVSS vector reflects that one server's files can compromise other systems, which is why this scores higher than many code-execution bugs.
Detail | Value |
|---|---|
CVE | CVE-2026-85706 (plus CVE-2026-87719) |
CVSS | 10.0 Critical (CWE-22 path traversal) |
Impact | Unauthenticated arbitrary file read in one request |
Exploited | In-the-wild probes; CISA KEV added 2026-09-11, due 09-14 |
Fixed | GitLab CE and EE 19.3.2, 19.2.6, 19.1 |
Detection | POST to repository/commits/ with file.path parameter |
Our read
A single-request, unauthenticated file read on a source-code platform is close to the worst case, because the files it exposes are the secrets that unlock the rest of your estate. The KEV listing with a three-day due date and watchTowr's probe telemetry mean this is not a wait-and-see item. The defensible move is to patch self-managed GitLab to a fixed release now, hunt the commits-API log pattern to see whether you were already read, and then rotate the CI/CD tokens, deploy keys, and secrets that a successful read would have exposed rather than assuming the patch alone closes the incident.
Reporting by BleepingComputer; exploitation detail per watchTowr; severity and KEV status per NVD and CISA. Sources linked above.
Related: What is path traversal? and What is CISA KEV?.