Exploited vulnerability

GitLab Unauthenticated Arbitrary File Read in the Commits API (CVE-2026-85706)

A critical flaw in GitLab Community and Enterprise Edition that lets an unauthenticated user read arbitrary files from the server through the repository commits API.

  • On CISA KEV
CVE ID
CVE-2026-85706
CVSS
10.0 Critical (CVSS v3.1, GitLab as CNA; no CVSS 4.0 score in the record or NVD)
CISA KEV
Listed
Affected product
GitLab Community Edition and Enterprise Edition 18.7 to 19.3 (self-managed)
Exploited
September 2026
Published
10 September 2026 (GitLab patch release); CVE record 12 September 2026

In short

CVE-2026-85706 is a critical flaw in GitLab Community and Enterprise Edition that lets an unauthenticated user read arbitrary files from the server through the repository commits API. GitLab rates it CVSS 3.1 10.0, fixed it in 19.3.2, 19.2.6, 19.1.8, 19.0.9 and 18.11.12, and CISA lists it in KEV.

Profile MapVulnerability
  1. CVECVE-2026-85706
  2. ProductGitLab GitLab Community Edition and Enterprise Edition 18.7 to 19.3 (self-managed)
  3. CISA KEVListedKnown Exploited Vulnerabilities
  4. ExploitedYesin real attacks
  5. Fix Steps5actions listedKeep the Patch Level Current

What it allows

GitLab says that under certain conditions an unauthenticated user could read arbitrary files from the GitLab server. It names "improper path confinement and missing authentication enforcement in the repository commits API" as the cause. GitLab, the CVE numbering authority, rates it CVSS 3.1 10.0 Critical.

The vector is network, low complexity, no privileges, no user interaction and a changed scope. Impact is high for confidentiality and integrity, and none for availability. The CVE record and NVD show no CVSS 4.0 score.

CISA lists the weakness as CWE-35 in its KEV entry, while the CVE record gives CWE-22. Both describe a path that escapes the folder it should stay in. GitLab credits the researcher s3ntago, who reported it through the GitLab HackerOne bug bounty program.

How the File Read Works

GitLab's fix commit shows where the gap was. It adds an authentication check to the commits endpoint and to the endpoints that create and update repository files. It also stops trusting the file path that a client sends along with an upload.

GitLab's fix commit adds a code comment saying authentication must happen before Workhorse buffers the request body to disk. The new code also rejects unsigned upload metadata instead of reading a file path from the request.

What an Attacker Could Read

The CVE record says only "arbitrary files" on the GitLab server. GitLab's release page names three threat detections for local file inclusion attempts, and one of them is titled "GitLab LFI attempt reading gitlab.yml". gitlab.yml is a GitLab configuration file.

A GitLab server keeps configuration and secrets on the same disk as its code. In our reading, a file read can therefore expose more than repository data. The record does not list the conditions it refers to, so we do not treat any instance as safe from it.

Exploitation Signals for CVE-2026-85706

These are the public signals we checked on 4 November 2026. Each row names its source.

Exploit signals
  • CISA KEVYesAdded 11 September 2026, due date 14 September, forensic triage flagged4 Nov
  • Exploitation in CISA SSVCYesExploitation active, automatable yes, technical impact total12 Sep
  • Public GitHub repositoriesYes13 repositories name the CVE, the first created 11 September; by their descriptions seven are PoC or exploit code and two are detection tools4 Nov
  • Brandefense BlackholeYes41 posts between 11 and 28 September, mostly CVE alert feeds, news relays and notices of new GitHub repositories4 Nov
  • Atlas catalogueYesCVSS 10, EPSS 0.93, listed as KEV4 Nov
Verdict Listed in CISA KEV since 11 September 2026; CISA's SSVC entry records exploitati

The repositories are public code of unknown quality, so we do not link them. GitLab's release page notes the KEV listing and says GitLab.com and GitLab Dedicated are already patched.

GitLab fixed another CVSS 10.0 flaw in October, the regular expression compiler flaw CVE-2026-110264. Our CISA KEV glossary entry explains what the catalog listing means.

Who is affected

The CVE record lists GitLab Community Edition and Enterprise Edition on five branches, each fixed by a patch release. GitLab.com and GitLab Dedicated are already patched, so the risk is to self-managed installs.

The record does not list versions before 18.7. GitLab's release page lists no workaround and tells admins to upgrade.

If you already patched CVE-2026-110264, you are probably covered. Every fixed build for that flaw is newer, by version number, than the fix for this one. Confirm the exact version on each server, and read our vulnerability management guide for a patch routine.

Timeline

  1. 4 Sep 2026

    GitLab reserves CVE-2026-85706.

  2. 10 Sep 2026

    GitLab releases 19.3.2, 19.2.6 and 19.1.8. The fix commit on the 19.3 branch is dated 9 September.

  3. 11 Sep 2026

    CISA adds the CVE to its Known Exploited Vulnerabilities catalog with a due date of 14 September.

  4. 12 Sep 2026

    The CVE record and the NVD entry go public. CISA's SSVC entry records exploitation as active.

  5. 23 Sep 2026

    GitLab releases the backports 19.0.9 and 18.11.12.

What to do

  1. Upgrade to a Fixed GitLab Version

    Move to 18.11.12, 19.0.9, 19.1.8, 19.2.6 or 19.3.2, or any later build on your branch. GitLab's release page says to upgrade and lists no workaround.

  2. Check Which Instances Face the Internet

    Find every self-managed GitLab server that outside networks can reach. CISA's KEV entry asks agencies to weigh each asset's internet exposure, and the same order of work suits private teams.

  3. Search Logs for File Read Attempts

    GitLab's release page names three threat detections for local file inclusion attempts, including "GitLab LFI attempt reading gitlab.yml". Review requests to the commits API and to the repository files API from before you patched, especially any that carried no authentication.

  4. Rotate Secrets if a Read Is Possible

    We recommend rotating tokens, keys and passwords stored in GitLab configuration files on any server that was exposed and unpatched after 10 September. The record does not say which files were read.

  5. Keep the Patch Level Current

    Track each new GitLab patch release for your branch, since CVE-2026-110264 also needed a fix in October. Fixed builds for that flaw are newer than the ones here.

Questions

Is CVE-2026-85706 exploited?

CISA added it to the Known Exploited Vulnerabilities catalog on 11 September 2026. The CISA SSVC entry in NVD records exploitation as active. GitLab's release page notes the KEV listing.

Do attackers need a GitLab account?

No. GitLab says an unauthenticated user could read arbitrary files, under certain conditions that the record does not list. CVSS privileges required is none.

Which GitLab versions fix it?

GitLab fixed it in 19.3.2, 19.2.6, 19.1.8, 19.0.9 and 18.11.12. Anything older on those branches is affected, back to 18.7.

Does patching CVE-2026-110264 also cover it?

By version number, yes. Each fixed build for CVE-2026-110264 is newer than the fix here. That is our reading, so confirm the version on every server.

In our research

  1. The Credential You Published on Purpose: How an Exposed GitLab Email Token Becomes Push Access to Main October 2026

Sources

  1. Patch Release: GitLab 19.3.2, 19.2.6 and 19.1.8 GitLab
  2. CVE-2026-85706 Record CVE Program / GitLab CNA
  3. CVE-2026-85706 NVD
  4. Known Exploited Vulnerabilities Catalog entry for CVE-2026-85706 CISA
  5. Fix unauthenticated arbitrary local file read in commits API GitLab