~/f4n6 $ grep -r "CVE-2026-85706: Critical GitLab Path Traversal Exploited in the Wild" ./investigations/ --include="*.md"

CVE-2026-85706: Critical GitLab Path Traversal Exploited in the Wild

Jeff Davies 14 Sep 2026 8 min read

1. Executive summary

On 10 September 2026 GitLab published an emergency patch release for CVE-2026-85706, a path traversal flaw (CWE-22) in the repository commits API of GitLab Community Edition and Enterprise Edition, rated CVSSv3.1 10.0, which allows an unauthenticated user to read arbitrary files from an affected GitLab server. CISA added the CVE to its Known Exploited Vulnerabilities catalog on 11 September 2026 on evidence of active exploitation, set a 14 September 2026 remediation due date for US Federal Civilian Executive Branch agencies, and marked it subject to forensic triage requirements under Binding Operational Directive 26-04; in-the-wild probing was reported within hours of disclosure. Any EMEA financial services firm running a self-managed GitLab CE/EE instance in the affected ranges (18.7 through 19.1.7, 19.2.0 through 19.2.5, 19.3.0 through 19.3.1) is exposed; GitLab.com is already patched and GitLab Dedicated customers need take no action. Because the flaw is unauthenticated and reachable over the internet, unpatched instances should be treated as potentially already compromised — patching alone does not close the incident, and Rapid7 explicitly recommends hunting for signs of compromise after the update is applied.

Note on sourcing: no VERIFIED REFERENCE DATA was resolved for this item. All CVSS, severity and CISA-KEV values above are as reported by Rapid7 and the NVD/CISA KEV entry, not independently re-assessed by Adverse Trace.

2. Regulatory framing

Article Trigger (the fact in this item) Practical impact
DORA Art. 18 — classification of ICT-related incidents and cyber threats CISA KEV confirms active exploitation of an unauthenticated arbitrary-file-read on an internet-facing system. If a client's self-managed GitLab instance was exposed and shows evidence of unauthorised file access, that is an ICT-related incident requiring classification — and the exploitation activity itself is a cyber threat. Classification must be performed on the evidence (access logs, file-read telemetry) before any reporting decision is taken. Do not classify on the CVE score alone.
DORA Art. 19 — reporting of major ICT-related incidents to competent authorities If the Art. 18 classification yields a major ICT-related incident, the reporting obligation is triggered. The KEV forensic-triage evidence set is the material that supports the initial notification. Preserve GitLab application/proxy logs and host file-access telemetry now; the reporting clock runs from classification, not from patch date.
NIS2 Art. 23 — incident reporting obligations For in-scope essential/important entities, a significant incident arising from exploitation of this flaw triggers the NIS2 reporting timeline. Same evidence set as DORA Art. 19. Where a firm is in scope under both regimes, coordinate the two notifications to avoid conflicting timelines.

No other article in the supplied regulatory reference is engaged by the facts of this item. In particular, the KEV remediation due date of 14 September 2026 binds US Federal Civilian Executive Branch agencies only — it is not a DORA or NIS2 deadline for EMEA clients, though it is a useful urgency benchmark.

3. Technical analysis & attack chain

Confirmed attack chain

  1. Target identification. The attacker locates an internet-facing, self-managed GitLab CE/EE instance running an affected version. Per GitLab (via Rapid7), all self-managed deployment types are affected — Omnibus, source-code and Helm chart deployments. GitLab.com is already running a patched version; GitLab Dedicated customers are unaffected.
  2. Unauthenticated request to the repository commits API. The flaw combines improper path confinement with missing authentication enforcement, so the request requires no valid session or token.
  3. Path traversal. The crafted request path escapes the intended directory (CWE-22), reaching files outside the API's intended scope.
  4. Arbitrary file read. The attacker reads arbitrary files from the GitLab server's filesystem. The source does not state which files were targeted in observed activity.
  5. Observed exploitation. CISA added CVE-2026-85706 to KEV on 11 September 2026 based on evidence of active exploitation. The Hacker News reports in-the-wild probes observed within hours of public disclosure.

Affected and fixed versions

Affected GitLab CE/EE versions Fixed version
All versions from 18.7 before 19.1.8 19.1.8
All versions from 19.2 before 19.2.6 19.2.6
All versions from 19.3 before 19.3.2 19.3.2

Upgrade mechanics that affect your change window

The updates include database migrations. Single-node installations will experience downtime while migrations run; multi-node deployments can use GitLab's zero-downtime upgrade procedure. Of the three fixed releases, only 19.3.2 includes post-deployment migrations — factor this into the maintenance window and rollback plan.

Second vulnerability in the same release (not known exploited)

The same patch release addresses 17 other vulnerabilities, including CVE-2026-87719, a critical insecure deserialization flaw (CWE-502) in GitLab EE with a CVSSv3.1 score of 9.9. Per GitLab, under certain conditions an authenticated user with Duo Chat access could obtain Advanced Search instance configurations and sensitive credentials using a specially crafted GraphQL subscription argument. At the time of publication, only CVE-2026-85706 is known to be exploited in the wild. CVE-2026-87719 is a credential-disclosure primitive and should be treated as a secret-rotation trigger, not merely a patch item.

What the source does not tell us

The available reporting contains no proof-of-concept request, no targeted file list, no post-exploitation behaviour, no persistence mechanism, no command-and-control, no lateral movement and no exfiltration evidence. There is no attribution to any named threat actor in any source, and the KEV entry records known ransomware campaign use as "Unknown" — this is not assessed as a ransomware incident on current evidence. Any statement about what attackers did after reading files would be speculation; we do not make one.

Discrepancies and items not to be conflated

  • GHSA-2fpv-gqh2-qq5r (corpus-4) describes a different path traversal — in the package registry, requiring an authenticated user to achieve remote code execution, affecting 18.8 before 19.0.6, 19.1 before 19.1.4 and 19.2 before 19.2.2. It is not CVE-2026-85706. Do not merge the two version ranges or the two preconditions when scoping.
  • CVE-2026-19478 (corpus-5, corpus-6) is a separate critical code-injection flaw patched in August 2026 (fixed in 19.2.4, 19.1.6, 19.0.8, 18.11.11). It is unrelated to this advisory.

4. Mitigation & containment

P1 — within 24 hours

  1. Inventory and version-check every self-managed GitLab CE/EE instance, including Omnibus, source and Helm deployments. Compare against the affected ranges above. Do not assume a container or Helm deployment is out of scope — GitLab states all self-managed deployment types are affected.
  2. Upgrade to the fixed version for your branch — 19.1.8, 19.2.6 or 19.3.2. This is a vendor-supplied fix; there is no configuration workaround published in the source material. Plan for database migrations and the associated downtime on single-node installs; use the zero-downtime procedure on multi-node. Note that only 19.3.2 carries post-deployment migrations.
  3. If you cannot patch within 24 hours, remove internet exposure. Restrict the instance to trusted networks, a VPN or an allow-listed reverse proxy. This is an Adverse Trace containment recommendation, not a vendor-published workaround — it reduces, but does not eliminate, risk from an already-present attacker.
  4. Start the compromise hunt immediately, not after patching. Rapid7 explicitly recommends looking for signs of compromise even after the update has been applied. Preserve GitLab application and reverse-proxy logs before any upgrade restarts services.

P2 — within 72 hours

  1. Complete patching across the full estate, including lower-environment and DR instances that may share credentials or network reachability with production.
  2. Assess CVE-2026-87719 on GitLab EE. It is fixed by the same patch release. If you cannot patch EE immediately, restrict Duo Chat access to trusted users, since exploitation requires an authenticated Duo Chat user.
  3. Rotate secrets held on any host that was internet-exposed while unpatched. Because the flaw permits arbitrary file read, treat secret material stored on an affected host as potentially disclosed. This is an Adverse Trace assessment based on the vulnerability class, not an observation from the source material.

P3 — within 7 days

  1. Rapid7 customers can assess exposure to CVE-2026-85706 with a vulnerability check available in the 15 September 2026 content release for Exposure Command, InsightVM and Nexpose.
  2. If you are subject to CISA BOD 26-04, follow the forensic triage requirements associated with the KEV entry. EMEA clients are not bound by BOD 26-04, but its triage requirements are a usable framework for structuring the post-patch hunt.
  3. Refer to the vendor's security advisory for the latest mitigation guidance; the Rapid7 note points there for updates.

5. Indicators of compromise

No indicators of compromise available in the source material.

No atomic indicators — no hashes, domains, IP addresses, file paths, filenames or command lines — appear in any supplied source. The only observable described is behavioural and is single-sourced.

Behavioural indicators

Behaviour Where to observe Confidence
Unauthenticated requests to the GitLab repository commits API exhibiting path traversal, observed within hours of public disclosure GitLab application/production logs; reverse-proxy and WAF request logs Low — single-sourced (The Hacker News reports "in-the-wild probes"; no request payload, URI pattern or source IP has been published). Verify against your own telemetry before building enforcement around it.

6. Detection

Insufficient indicators to author detection rules.

The sources contain no threat artefacts usable as detection strings — no file hashes, filenames, file paths, command-line flags, mutexes, service or scheduled-task names, registry keys or hard-coded values. The only distinctive elements available are the CVE identifier, the product name and the API component name, none of which are artefacts of the threat itself; a rule built on them would detect reporting about the vulnerability rather than exploitation of it.

Hunting guidance (not a detection rule). In the absence of published request patterns, hunt on the behavioural indicator in §5: review GitLab application and reverse-proxy logs for unauthenticated requests to the repository commits API that contain path traversal sequences, and correlate any such requests with subsequent file-access telemetry on the GitLab host. Tune the URI pattern to your GitLab version's API routing before deploying. Treat any hit as a potential compromise requiring the DORA Art. 18 classification assessment in §2.

7. Sources

  • Rapid7 — CVE-2026-85706: Critical GitLab Path Traversal Exploited in the Wild — https://www.rapid7.com/blog/post/etr-cve-2026-85706-critical-gitlab-path-traversal-exploited-in-the-wild — 2026-09-14
  • CISA Known Exploited Vulnerabilities / NVD — CVE-2026-85706 — GitLab Community Edition and Enterprise Edition Path Traversal Vulnerability — https://nvd.nist.gov/vuln/detail/CVE-2026-85706
  • The Hacker News — GitLab CVSS 10 File-Read Flaw Draws In-the-Wild Probes After Disclosure — https://thehackernews.com/2026/09/gitlab-cvss-10-file-read-flaw-draws-in.html
  • SecurityWeek — GitLab Vulnerability Exploited One Day After Disclosure — https://www.securityweek.com/gitlab-vulnerability-exploited-one-day-after-disclosure/
  • GitHub Security Advisories — GHSA-2fpv-gqh2-qq5r (separate package-registry path traversal; not CVE-2026-85706) — https://github.com/advisories/GHSA-2fpv-gqh2-qq5r
  • Help Net Security — Critical GitLab flaw allows attackers to modify or delete public projects (CVE-2026-19478) — https://www.helpnetsecurity.com/2026/08/18/gitlab-critical-code-injection-flaw-cve-2026-19478/ — 2026-08-18
  • SecurityWeek — Critical GitLab Flaw Exploited Shortly After Disclosure (CVE-2026-19478) — https://www.securityweek.com/critical-gitlab-flaw-exploited-shortly-after-disclosure/

8. Adverse Trace position

Severity: Critical (CVSSv3.1 10.0 as reported by the source; no VERIFIED REFERENCE DATA was resolved for this item, so this is not an Adverse Trace re-assessment). The combination of unauthenticated access, arbitrary file read, internet-facing exposure and confirmed in-the-wild exploitation places this at the top of our remediation queue for any client running self-managed GitLab. Client impact: EMEA financial services firms with self-managed GitLab CE/EE in the affected ranges should assume exposure and act within 24 hours; firms on GitLab.com or GitLab Dedicated are not affected. The material risk is not the patch itself but the possibility that file reads already occurred — GitLab instances commonly hold CI/CD variables, tokens and configuration secrets, and the source gives no indication of what was targeted. Confidence caveats: the exploitation evidence rests on the CISA KEV listing and a single vendor report of "in-the-wild probes"; there is no attribution to any named actor in any source, and no MITRE ATT&CK profile can be applied. The KEV entry records ransomware campaign use as "Unknown" — we do not assess this as ransomware. Next: we will track the vendor advisory for any published workaround or revised fixed versions, monitor for a published proof-of-concept or request pattern that would let us author detection content, and re-issue this advisory if either materialises. Clients who identify evidence of unauthorised file access should contact their Adverse Trace handler immediately to support the DORA Art. 18 classification and any subsequent Art. 19 or NIS2 Art. 23 notification.


Read the original source →

Published via PulseTrace — Adverse Trace threat intelligence.

Post this to LinkedIn
Formatting is converted automatically — headings, bullets, a link back & hashtags. Paste straight in.
J
Jeff Davies