oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 1 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
oras-go is a Go library for managing OCI artifacts. Prior to 2.6.2, content/file.Store extraction of OCI layers marked with io.deis.oras.content.unpack=true can write outside the store working directory. The pushDir path through extractTarDirectory and ensureLinkPath validates symlink targets lexically, resolveRelToBase skips its parent-symlink walk for root-level entries, and writeFile follows a terminal symlink when opening a regular file. A malicious archive can therefore create a symlink chain whose lexical target remains inside the extraction root but whose resolved target is an attacker-selected absolute path, then overwrite that target with a same-named regular-file entry even when AllowPathTraversalOnWrite is false. Pulling an attacker-controlled artifact can create or overwrite any file writable by the process and may lead to code execution. This issue is fixed in version 2.6.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| oras-project | oras-go | before 2.6.2 | 2.6.2 | Patch available | CNA |
| — | oras.land/oras-go/v2 (Go) | before 2.6.2 | 2.6.2 | Patch available | GHSA-m37j-52j7-pjw7 |
- oras-go Vendororas-project Affected before 2.6.2 Fixed in 2.6.2 Patch available CNA
- oras.land/oras-go/v2 (Go) Vendor— Affected before 2.6.2 Fixed in 2.6.2 Patch available GHSA-m37j-52j7-pjw7
Remediation
- Fix · CNA oras-go (oras-project) Fixed in 2.6.2
- Fix · GHSA-m37j-52j7-pjw7 oras.land/oras-go/v2 (Go) Fixed in 2.6.2 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet |
Timeline
- 2026-10-02 Threatist record created from CVE-2026-85731
- 2026-10-03 Alias added: GHSA-m37j-52j7-pjw7
- 2026-10-04 EPSS moved to the 50th–90th percentile
- 2026-11-06 Affected versions changed · Red Hat
References
More oras-project vulnerabilities
- TI-2026-36926 oras-go: file store write outside workingDir via symlink traversal CVSS 4.0MEDIUM 6.9
- TI-2026-36927 Path traversal in oras-project oras-go CVSS 3.1HIGH 7.1
- TI-2026-58830 oras-go: Blind SSRF via unvalidated Link header URL in pagination allows internal network probing CVSS 3.1MEDIUM 4.7
- TI-2026-40126 ORAS CLI: Cyclic Referrer Graph Can Cause Unbounded Recursion and Resource Consumption CVSS 3.1MEDIUM 6.5
- TI-2026-36234 oras-go: Malicious registry can hijack Bearer token realm to exfiltrate credentials and refresh tokens CVSS 4.0LOW 2.1
Sources
- CVE-2026-85731 · CVE Program
- CVE-2026-85731 · NVD
- FIRST EPSS
- GHSA-m37j-52j7-pjw7 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-85731 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences