GitLab has released emergency security updates to fix several vulnerabilities, including CVE-2026-85706 with the maximum CVSS 10.0 rating — a path traversal vulnerability in the repository commits API that allows an unauthenticated attacker to read arbitrary files from the GitLab server. Both editions are affected — Community Edition and Enterprise Edition — starting from version 18.7. According to watchTowr, scanning for vulnerable instances began within a few hours of public disclosure. Administrators of self-managed internet-accessible GitLab installations must immediately update to versions 19.1.8, 19.2.6, or 19.3.2.
Technical details of CVE-2026-85706
The CVE-2026-85706 vulnerability belongs to class CWE-22 (path traversal) and is caused, according to GitLab, by improper path restriction and the lack of authentication checks in the repository commits API. This means that under certain conditions an external attacker can obtain the contents of arbitrary files on the server without any credentials.
According to the entry in the GitHub Advisory Database, the vulnerability affects the following versions of GitLab CE and EE:
- All versions starting from 18.7 up to (but not including) 19.1.8
- All versions starting from 19.2 up to (but not including) 19.2.6
- All versions starting from 19.3 up to (but not including) 19.3.2
According to watchTowr, exploitation makes it possible to access GitLab logs and configuration files containing credentials, secrets, and other sensitive information. The only required condition, they report, is the presence of at least one public project on the target instance.
Second critical vulnerability: CVE-2026-87719
In the same update, GitLab fixed another critical vulnerability — CVE-2026-87719 with a CVSS 9.9 rating. This is an insecure deserialization bug (CWE-502) that affects only GitLab Enterprise Edition.
According to the description in the GitHub Advisory Database, the vulnerability allows an authenticated user with access to Duo Chat to obtain Advanced Search configurations and sensitive credentials via a specially crafted GraphQL subscription argument, bypassing serialization and performing a search of server-side objects. Affected GitLab EE versions are from 18.3 up to 19.1.8, from 19.2 up to 19.2.6, and from 19.3 up to 19.3.2.
The fundamental difference between the two vulnerabilities lies in the scope of impact. CVE-2026-85706 affects both editions (CE and EE) and does not require authentication, which makes it more dangerous for internet-exposed installations. CVE-2026-87719 is limited to Enterprise Edition and requires authenticated access to Duo Chat, which significantly narrows the pool of potential attackers.
Context: a series of critical GitLab vulnerabilities
This is not the first critical GitLab vulnerability in recent weeks. Previously, CVE-2026-19478 was disclosed — a code injection vulnerability via GraphQL with a CVSS 9.4 rating that allowed an unauthenticated user to modify or delete public projects and user data via a GraphQL directive. We have already written about this vulnerability. There is a public reproduction setup for CVE-2026-19478 describing two attack vectors via GraphQL version filters. At the same time, claims of immediate active exploitation of CVE-2026-19478 in the wild have not been independently confirmed — the existence of a public PoC by itself is not proof of widespread exploitation.
A similar degree of caution is appropriate regarding CVE-2026-85706: the watchTowr statement about scanning beginning on 11 September 2026 at 06:00 UTC was relayed via a news outlet, and no independent confirmation from other observers or from CISA had been found at the time of publication. Nevertheless, the very nature of the vulnerability — unauthenticated file reading with the maximum CVSS score — makes the rapid appearance of scanning highly likely.
Impact assessment
GitLab’s attractiveness as a target for attackers is obvious: unauthorized access opens the way to source code, CI/CD pipeline secrets, credentials, and the ability to inject code into build pipelines. Compromise of a GitLab server can lead to supply-chain attacks — everything “downstream” from an infected pipeline is put at risk.
The highest risk is faced by organizations running self-managed internet-accessible GitLab instances, especially when public projects are present.
Recommendations
- Immediate update: install versions 19.3.2, 19.2.6, or 19.1.8, depending on the branch you are using. Patching CVE-2026-85706 should be prioritized over CVE-2026-87719 because it does not require authentication.
- Restrict access: if immediate updating is not possible, restrict public access to the GitLab instance.
- Log review: as recommended by watchTowr, analyze logs for HTTP POST requests to URIs of the form
/api/v4/projects/{id}/repository/commits/containingfile.Pathparameters — this may indicate exploitation attempts. - Secret rotation: if the instance was internet-accessible in a vulnerable configuration, consider rotating credentials and secrets stored in GitLab configuration files.
Three critical GitLab vulnerabilities in a short period form a persistent trend that requires administrators of self-managed installations to rethink their update management approach. The concrete step right now is to update to versions 19.3.2, 19.2.6, or 19.1.8 and check repository commits API logs for signs of attempted exploitation of CVE-2026-85706.