CVE-2026-85731: oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
The content/file.Store in oras-go v2 unpacks OCI layer tarballs when a descriptor carries io.deis.oras.content.unpack=true. The extraction routine validates symlink targets purely lexically (filepath.Join) and, for regular files placed directly at the extraction root, skips the parent-symlink Lstat walk. A malicious tarball can plant a chain of symlinks whose lexical target stays inside the extraction root but whose kernel-resolved target is any absolute path, then write through it with a follow-up regular-file entry. The result is arbitrary file create/overwrite outside the store’s working directory under the default AllowPathTraversalOnWrite=false configuration — a canonical tar-slip → RCE primitive.
References
Code Behaviors & Features
Detect and mitigate CVE-2026-85731 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →