CVE-2026-85706 — gitlab
CVE-2026-85706 is a Path Traversal vulnerability in gitlab. It is in CISA's Known Exploited Vulnerabilities catalog (added 2026-09-11) — treat it as actively exploited and patch now. A fix is available for gitlab — see the affected versions and patch details below.
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in GitLab
Exploitation Status
Actively exploited in the wild
- Confirmed by CISA's Known Exploited Vulnerabilities catalog on 2026-09-11. Federal agencies were required to remediate by 2026-09-14.
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA (KEV catalog and SSVC triage) for CVE-2026-85706.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
gitlabReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Bitnami packages — download data is not available via public APIs for these ecosystems.
Description
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.7 before 18.11.12, 19.0 before 19.0.9, 19.1 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2 that, under certain conditions, an unauthenticated user could have read arbitrary files from the GitLab server due to improper path confinement and missing authentication enforcement in the repository commits API.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦Bitnami | gitlab | ≥ 18.7.0&&< 18.11.12 | 18.11.12 |
Affected Products
gitlabgitlabResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
guneykabel/cve-2026-85706
Exploit poc for CVE-2026-85706 an unauthenticated arbitrary file read on
EQSTLab/CVE-2026-85706
GitLab Unauthenticated Arbitrary File Read
mhtsec/CVE-2026-85706
GitLab CE/EE unauthenticated path traversal (CVE-2026-85706) - PoC
ynsmroztas/GitLabSniper
CVE-2026-85706 Unauthenticated File Read
0xlyvio/cve-2026-85706-poc-exploit-gitlab
cve-2026-85706-poc-exploit-gitlab
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for gitlab, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update gitlab to 18.11.12 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-85706 is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
How to detect CVE-2026-85706
A community-maintained Nuclei template exists for this CVE. You can scan for it directly:
nuclei -id cve-2026-85706 -u https://target- Template
- GitLab CE/EE <=19.1.7/19.2.5/19.3.1 - Arbitrary File Read
- Severity
- critical
- Impact
- Unauthenticated remote attackers can read any file accessible to the GitLab git user, including /etc/passwd, database credentials, secrets.yml, SSH private keys, and CI build artifacts, which in turn enables session forgery and full compromise of the instance. Exploitation requires at least one publicly readable project on the target.
- Remediation
- Upgrade GitLab CE/EE to 19.1.8, 19.2.6, or 19.3.2 or later. The fix moves authenticate! ahead of file processing and stops accepting raw file.path and file.size parameters from untrusted clients.
Template by ProjectDiscovery nuclei-templates (FLX), MIT licensed. View the full template. Scan only systems you are authorised to test.
Frequently Asked Questions
Is CVE-2026-85706 in your dependencies?
Find it across Bitnami, including transitive dependencies.