GitLab Patches a Perfect-10 Bug Attackers Found in a Day
Security / news
GitLab Patches a Perfect-10 Bug Attackers Found in a Day
The flaw let anyone read files off a GitLab server with one request, and it was one of 17 vulnerabilities fixed in the same release.
An unauthenticated attacker who can reach a GitLab server's repository commits API can read any file on it with a single HTTP request, no login required. GitLab patched the bug, CVE-2026-85706, on Sept. 10, and CISA added it to its Known Exploited Vulnerabilities catalog the next day.
GitLab's own release notes rate the flaw a perfect 10 out of 10 on CVSS 3.1, the result of what the company calls improper path confinement combined with missing authentication enforcement in the endpoint. A crafted request carrying a file.path parameter can return the contents of configuration files, SSH keys, database credentials, deploy tokens or CI/CD variables stored on the server, according to BleepingComputer. GitLab credited the finding to a researcher using the handle s3ntago, reported through its HackerOne bug bounty program.
From patch to honeypot probes in a day
- Sept. 10: GitLab ships 19.3.2, 19.2.6 and 19.1.8, fixing the bug across CE and EE's three most recent minor branches.
- Sept. 11: watchTowr publishes a technical analysis and says it is already seeing "behavioral probes" against its honeypot network, meaning attackers have reverse-engineered the fix.
- Also Sept. 11: CISA adds CVE-2026-85706 to its exploited-vulnerabilities catalog.
- Sept. 12: Jake Knott, watchTowr's head of threat intelligence, told SecurityWeek this is "the second instance of a critical-severity GitLab vulnerability in recent weeks" and that "mass exploitation of the vulnerability is likely to follow shortly."
It is the same pattern researchers flagged this month in three chained JFrog Artifactory bugs: a patch ships, and attackers reverse-engineer it before most administrators have applied it. Knott's defensive advice is specific rather than generic: hunt log files for HTTP POST requests to /api/v4/projects/{id}/repository/commits/ URIs that carry a file.path parameter, since that request shape is what both the exploit and any legitimate use of the endpoint would produce.
Sixteen more bugs in the same release
GitLab's Sept. 10 patch fixed 17 vulnerabilities in total. Most require an authenticated account and carry no report of exploitation, but two are severe enough to matter on their own.
| CVE | CVSS | Flaw |
|---|---|---|
| CVE-2026-85706 | 10.0 | Unauthenticated path traversal, arbitrary file read |
| CVE-2026-87719 | 9.9 | Insecure deserialization exposing Advanced Search credentials |
| CVE-2026-88765 | 8.5 | Buffer overflow enabling code execution via project import |
| CVE-2026-79708 | 8.5 | Policy bypass exposing protected CI/CD variables |
One GitLab engineer, credited only as Peter Arts, is named as the internal reporter on two of the medium-severity bugs, CVE-2026-86340 and CVE-2026-86341, both authorization bypasses in protected-environment deployment approvals. Every other entry in the release notes credits an outside researcher through HackerOne, which is the same reconnaissance-before-mass-exploitation dynamic already visible in a Cisco firewall bug under active attack this month: public bug bounty programs generate a steady stream of fixes, and each one is a race between administrators patching and attackers reading the diff.
GitLab.com's own hosted instances are already running the patched version, and GitLab Dedicated customers do not need to act. Self-managed installations on 18.7 through 19.3.1 are exposed until upgraded. GitLab's release notes do not say whether any of the other 16 vulnerabilities are also under active exploitation, and neither CISA nor watchTowr has added a second CVE from this release to a public tracking list yet.
Sources
More in Security
- 01Go Team Weighs Turning Off Default MPTCP After Linux FlawThe Go Security Team called a default change premature on Oct. 29, while commenters on golang/go issue 82717 split over keeping multipath TCP on.
- 02Anthropic's Claude Exploit Chains Hit Five Targets, Each With LimitsThe Frontier Red Team's Oct. 27 post covers Chrome, Safari, Android, Windows and Linux, but only the Chrome and Linux results reach code execution.
- 03A Tampered Claude Code Extension Sat in Cursor's Marketplace for 11 Hours and Left an SSH Key BehindVersions 2.1.312 and 2.1.313 carried a 7,386-byte loader that plants an attacker key and a reverse tunnel. Uninstalling the extension does not remove either.
- 04Ivanti Connect Secure Zero-Day Chain Gave Root on a Patched VPN, and the Integrity Checker Misses ItVolexity dates exploitation to October 3, ten days before Ivanti's advisory; the root escalation step has no CVE and no fix in the sources reviewed.