{"id":"CVE-2026-85731","summary":"oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)","details":"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.","aliases":["GHSA-m37j-52j7-pjw7"],"modified":"2026-09-18T03:48:32.204498744Z","published":"2026-09-16T16:24:48.905Z","database_specific":{"cwe_ids":["CWE-22","CWE-59"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85731.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/oras-project/oras-go/releases/tag/v2.6.2"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85731.json"},{"type":"ADVISORY","url":"https://github.com/oras-project/oras-go/security/advisories/GHSA-m37j-52j7-pjw7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-85731"},{"type":"FIX","url":"https://github.com/oras-project/oras-go/commit/adab2f25ea95ef4e6e41f50db9266a6701399422"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/oras-project/oras-go","events":[{"introduced":"0"},{"fixed":"adab2f25ea95ef4e6e41f50db9266a6701399422"},{"fixed":"105715ee12eac6895ec736a075285c34d9f2eeb6"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"2.6.2"}]}}],"versions":["v2.6.1","v2.6.0","v2.5.0","v2.4.0","v2.3.0","v2.2.0","v2.1.0","v2.0.2","v2.0.1","v2.0.0","v2.0.0-rc.6","v2.0.0-rc.5","v2.0.0-rc.4","v2.0.0-rc.3","v2.0.0-rc.2","v2.0.0-rc.1","v2.0.0-alpha","v0.5.0","v0.4.0","v0.3.0","v0.2.0","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-85731.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"}]}