CVE-2026-85731
Reported by github_m · Published September 16, 2026
oras.land/oras-go/v2 is fixed in 2.6.2 (Go Modules)
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.
Fixed versions
Upgrade to a fixed version or later. Language registries are listed first, then Linux distributions, then vendor products.
| Package | Ecosystem | Fixed in |
|---|---|---|
| oras.land/oras-go/v2 | Go Modules | 2.6.2 |
| xeol-fips | Chainguard | 0.10.8-r59 |
| consul-k8s-1.5 | Chainguard | 1.5.9-r45 |
| redpanda-operator-26.2 | Chainguard | 26.2.3-r2 |
| gitness | Chainguard | 3.3.0-r38 |
| opentofu-1.12 | Chainguard | 1.12.6-r7 |
| kyverno-fips-1.16 | Chainguard | 1.16.4-r28 |
| consul-k8s-fips-1.1 | Chainguard | 1.1.18-r51 |
| consul-k8s-1.6 | Chainguard | 1.6.10-r38 |
| envoy-gateway-fips-1.7 | Chainguard | 1.7.5-r34 |
| xeol | Wolfi | 0.10.8-r62 |
| cloudbeat-9.2 | Chainguard | 9.2.8-r29 |
59 more packages have a fixed version. See every fix in Lookup.
Risk scores
Affected products
| Vendor | Product | Versions |
|---|---|---|
| oras-project | oras-go | < 2.6.2 |
| chainguard | xeol-fips | 0 |
| chainguard | consul-k8s-1.5 | 0 |
| chainguard | rancher-agent-2.11 | * |
| chainguard | redpanda-operator-26.2 | 0 |
| chainguard | gitness | 0 |
| chainguard | opentofu-1.12 | 0 |
| chainguard | kyverno-fips-1.16 | 0 |
| chainguard | consul-k8s-fips-1.1 | 0 |
| chainguard | consul-k8s-1.6 | 0 |
| chainguard | envoy-gateway-fips-1.7 | 0 |
| wolfi | xeol | 0 |
| chainguard | cloudbeat-9.2 | 0 |
| chainguard | cloudbeat-fips-9.3 | 0 |
| chainguard | ocm-cli | 0 |
| chainguard | redpanda-operator-26.1 | 0 |
| chainguard | ocm-cli-fips | 0 |
| chainguard | kyverno-1.15 | 0 |
| chainguard | helm-mapkubeapis | 0 |
| wolfi | k9s | 0 |
…and 74 more
Timeline
- Sep 16, 2026 Coalition ESS Score
- Sep 16, 2026 CVE Published
- Sep 16, 2026 CVE Updated
- Sep 17, 2026 EPSS Score (20 in total, the first dated here)
- Oct 31, 2026 Security Advisory
Query this with the API
The same record, from the CLI:
vulnetix vdb vuln CVE-2026-85731
vulnetix vdb fixes CVE-2026-85731
Or with curl, using the org id and key from your account page:
curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
"https://api.vdb.vulnetix.com/v2/vuln/CVE-2026-85731/fixes/registry"
The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart
References
- https://github.com/oras-project/oras-go/security/advisories/GHSA-m37j-52j7-pjw7 x_refsource_CONFIRM
- https://github.com/oras-project/oras-go/commit/adab2f25ea95ef4e6e41f50db9266a6701399422 x_refsource_MISC
- https://github.com/oras-project/oras-go/releases/tag/v2.6.2 x_refsource_MISC
- https://nvd.nist.gov/vuln/detail/CVE-2026-85731 advisory
- https://github.com/advisories/GHSA-m37j-52j7-pjw7 advisory