DEV Community
A CVSS-10 Path Traversal in GitLab's Commits API Is Being Exploited
TL;DR GitLab patched CVE-2026-85706, a path traversal in the repository commits API letting an unauthenticated attacker read arbitrary files from the server — CVSS 10.0, disclosed with the 19.3.2 / 19.2.6 / 19.1.8 critical patch release. CISA added it to the Known Exploited Vulnerabilities catalog on September 11, 2026 — active exploitation, not a theoretical risk. The KEV entry is what should set the priority. The affected range is broad: GitLab CE/EE from 18.7 before 19.1.8, 19.2 before 19.2.6, 19.3 before 19.3.2. GitLab.com and GitLab Dedicated are already patched; the exposure is on self-managed instances, which must patch themselves. What to do now: patch before anything else, verify the running version, then replay the three GitLab detection signatures against your historical logs. Reproduction of the official GitLab critical patch release page (19.3.2 / 19.2.6 / 19.1.8) documenting CVE-2026-85706; source: https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/ A file-read primitive inside the tool that holds your source On September 11, GitLab shipped a critical patch release that closed CVE-2026-85706: a path traversal in the repository commits API that let an unauthenticated user read arbitrary files from the server. Read the advisory's own wording carefully, because the two faults it names are the story. GitLab describes "improper path confinement and missing authentication enforcement in the repository commits API" — that is an endpoint that forgot to do two of the three basic things an endpoint should do (check the path stays inside the intended root, check who is calling). Not an exotic side-channel; a routine omission with maximum severity. The severity number matters. CVSS 10.0 with the vector AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N is about as close as the scoring system gets to "no conditions": network-reachable, no privileges, no user interaction, and the confidentiality impact is high with a scope change. For a self-managed GitLab, "arbitrary files" includes gitlab.yml and its secrets, repository contents, OAuth tokens, and anything else mounted where the Rails process can read it. In a tool whose entire job is to be the single source of truth for code, an unauthenticated file read is close to the worst possible primitive. CISA's KEV entry is the part that should set the priority The CISA Known Exploited Vulnerabilities catalog entry is the operational signal. CISA adds vulnerabilities to KEV only based on evidence of active exploitation — and under BOD 26-04 the entry imposes rapid-remediation deadlines on US federal agencies. For everyone else it is still the clearest public indicator we have that attackers are already using the flaw. When a CVSS 10.0 file read in a self-managed DevSecOps tool is both patchable and exploited, the ordering question is over. Feature upgrades wait; this one does not. Reproduction of the official CISA alert "CISA Adds One Known Exploited Vulnerability to Catalog" (September 11, 2026) listing CVE-2026-85706; source: https://www.cisa.gov/news-events/alerts/2026/09/11/cisa-adds-one-known-exploited-vulnerability-catalog The affected range is wider than your upgrade plan probably is GitLab's advisory lists impacted versions as GitLab CE/EE from 18.7 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2. Three release lines, each needing its own patch. The practical failure mode at most self-managed sites is different: the instance sits on an earlier major (18.x, 17.x), possibly already past its support window, in a container or VM that has not moved in months because "nothing broke." That instance is still listed — the advisory's impact statement starts at 18.7, but the repository commits API exists on every GitLab. The responsible reading of the advisory is: if your instance is 18.7 or newer and not on one of the three patched points, you are affected; if it is older, you are patching everything, because the endpoint has been there longer. Original Netic...
Powered by Readybot.io
External Link
Platform
You are about to visit:
https://example.comThis will open in a new tab. Make sure you trust this link.