CVE-2026-85731
oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
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.
- Record
CVE-2026-85731- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
EUVDEUVD-2026-80873
8.8
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.
- Record
EUVD-2026-80873- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-m37j-52j7-pjw7
8.8
oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
Summary
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.
Details
Affected versions: <= v2.6.1
Entry point: content/file/file.go line 486, (*Store).pushDir — reached from (*Store).Push for any descriptor whose annotations include io.deis.oras.content.unpack: "true" (i.e. file.AnnotationUnpack) and an org.opencontainers.image.title. oras.Copy from a remote registry into a file.New(dir) store invokes this per layer.
Root cause 1 — lexical link validation. content/file/utils.go lines 264–275, ensureLinkPath:
func ensureLinkPath(baseAbs, baseRel, link, target string) (string, error) {
// resolve link
path := target
if !filepath.IsAbs(target) {
path = filepath.Join(filepath.Dir(link), target)
}
// ensure path is under baseAbs or baseRel
if _, err := resolveRelToBase(baseAbs, baseRel, path); err != nil {
return "", err
}
return target, nil
}
filepath.Join cleans .. components textually and does not dereference symlinks in intermediate components. It therefore cannot detect that a component of target is itself a previously-extracted symlink that the kernel will follow before applying subsequent .. components.
Root cause 2 — parent-symlink check skipped for root-level entries. content/file/utils.go lines 247–257, inside resolveRelToBase:
// No symbolic link allowed in the relative path
dir := filepath.Dir(path)
for dir != "." {
if info, err := os.Lstat(filepath.Join(baseAbs, dir)); err != nil {
...
} else if info.Mode()&os.ModeSymlink != 0 {
return "", fmt.Errorf("no symbolic link allowed between %q and %q", baseRel, target)
}
dir = filepath.Dir(dir)
}
For an entry named <title>/escape, path == "escape" and filepath.Dir("escape") == ".", so the loop body never executes — the entry itself is never Lstat-checked.
Root cause 3 — write follows symlinks. content/file/utils.go line 279, writeFile:
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
No O_NOFOLLOW, so if path is a symlink the write goes to its target.
Data flow / exploit construction. Let baseAbs = <workingDir>/<title> and N = depth(baseAbs) (number of path components from /). The attacker's tar.gz contains, in order:
Nnested directories<title>/d0/d1/…/d{N-1}.- A symlink
<title>/d0/…/d{N-1}/up→"../../…"(Nlevels). Both lexically and on disk this resolves tobaseAbs, soensureLinkPathaccepts it andresolveRelToBasesees only real directories in its ancestry. - A symlink
<title>/escape→"d0/…/d{N-1}/up/../../…/<absTarget>"(N..components afterup). Lexically,filepath.Join(baseAbs, "d0/…/up/../…/<absTarget>")cancels theN..againstupplusd{N-2}…d0, yieldingbaseAbs/d0/<absTarget>— inside the root, soensureLinkPathaccepts it.resolveRelToBasethen walksd0/<absTarget-parents>, none of which are symlinks (they don't exist), so the link is created. At the kernel, resolvingbaseAbs/d0/…/upfirst followsupback tobaseAbs, and the remainingN..components climb frombaseAbsto/,…
- Record
GHSA-m37j-52j7-pjw7- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
NVD
8.8
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.
- Record
CVE-2026-85731- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
OSV
8.8
oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
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.
- Record
CVE-2026-85731- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-85731
8.8
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.
- Record
DEBIAN-CVE-2026-85731- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 6 moreShow less
OSVGHSA-m37j-52j7-pjw7
8.8
oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)
Summary
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.
Details
Affected versions: <= v2.6.1
Entry point: content/file/file.go line 486, (*Store).pushDir — reached from (*Store).Push for any descriptor whose annotations include io.deis.oras.content.unpack: "true" (i.e. file.AnnotationUnpack) and an org.opencontainers.image.title. oras.Copy from a remote registry into a file.New(dir) store invokes this per layer.
Root cause 1 — lexical link validation. content/file/utils.go lines 264–275, ensureLinkPath:
func ensureLinkPath(baseAbs, baseRel, link, target string) (string, error) {
// resolve link
path := target
if !filepath.IsAbs(target) {
path = filepath.Join(filepath.Dir(link), target)
}
// ensure path is under baseAbs or baseRel
if _, err := resolveRelToBase(baseAbs, baseRel, path); err != nil {
return "", err
}
return target, nil
}
filepath.Join cleans .. components textually and does not dereference symlinks in intermediate components. It therefore cannot detect that a component of target is itself a previously-extracted symlink that the kernel will follow before applying subsequent .. components.
Root cause 2 — parent-symlink check skipped for root-level entries. content/file/utils.go lines 247–257, inside resolveRelToBase:
// No symbolic link allowed in the relative path
dir := filepath.Dir(path)
for dir != "." {
if info, err := os.Lstat(filepath.Join(baseAbs, dir)); err != nil {
...
} else if info.Mode()&os.ModeSymlink != 0 {
return "", fmt.Errorf("no symbolic link allowed between %q and %q", baseRel, target)
}
dir = filepath.Dir(dir)
}
For an entry named <title>/escape, path == "escape" and filepath.Dir("escape") == ".", so the loop body never executes — the entry itself is never Lstat-checked.
Root cause 3 — write follows symlinks. content/file/utils.go line 279, writeFile:
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
No O_NOFOLLOW, so if path is a symlink the write goes to its target.
Data flow / exploit construction. Let baseAbs = <workingDir>/<title> and N = depth(baseAbs) (number of path components from /). The attacker's tar.gz contains, in order:
Nnested directories<title>/d0/d1/…/d{N-1}.- A symlink
<title>/d0/…/d{N-1}/up→"../../…"(Nlevels). Both lexically and on disk this resolves tobaseAbs, soensureLinkPathaccepts it andresolveRelToBasesees only real directories in its ancestry. - A symlink
<title>/escape→"d0/…/d{N-1}/up/../../…/<absTarget>"(N..components afterup). Lexically,filepath.Join(baseAbs, "d0/…/up/../…/<absTarget>")cancels theN..againstupplusd{N-2}…d0, yieldingbaseAbs/d0/<absTarget>— inside the root, soensureLinkPathaccepts it.resolveRelToBasethen walksd0/<absTarget-parents>, none of which are symlinks (they don't exist), so the link is created. At the kernel, resolvingbaseAbs/d0/…/upfirst followsupback tobaseAbs, and the remainingN..components climb frombaseAbsto/,…
- Record
GHSA-m37j-52j7-pjw7- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-85731
8.8
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.
- Record
UBUNTU-CVE-2026-85731- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGO-2026-6499 No score
Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir) in oras.land/oras-go
Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir) in oras.land/oras-go
- Record
GO-2026-6499- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11832-1 No score
helm3-3.22.0-1.1 on GA media
These are all security issues fixed in the helm3-3.22.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11832-1- Updated
- 2026-11-02
OSVROOT-APP-GOBINARY-CVE-2026-85731 No score
CVE-2026-85731 in oras.land/oras-go/v2 - Patched by Root
Root has patched CVE-2026-85731 in the oras.land/oras-go/v2 package for Root:Go. Multiple fixed versions available.
- Record
ROOT-APP-GOBINARY-CVE-2026-85731- Updated
- 2026-11-02
OSVSUSE-SU-2026:4417-1 No score
Security update for helm
This update for helm fixes the following issues:
- CVE-2026-85731: oras.land/oras-go/v2: arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (bsc#1281104).
- CVE-2026-85732: oras.land/oras-go/v2: blind SSRF via unvalidated Link header URL in pagination allows internal network probing (bsc#1281112).
Changes for helm:
- Update to version 3.22.0:
- chore(deps): bump the k8s-io group across 1 directory with 6 updates
- bump version to 3.22 (#32606)
- fix: set [pull,push] scope when helm push to a registry(use token auth) (backport) (#32362)
- chore(deps): bump the k8s-io group with 7 updates (#32573)
- chore(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 (#32563)
- chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0 (#32554)
- chore(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 (#32542)
- [dev-v3 backport] deps: bump google.golang.org/[email protected] for GO-2026-6061 (#32536)
- fix: bump go.opentelemetry.io/[email protected] for GO-2026-5158 (#32535)
- chore(deps): bump github.com/santhosh-tekuri/jsonschema/v6
- fix(provenance): migrate to ProtonMail/go-crypto to resolve GO-2026-5932
- chore(deps): bump the k8s-io group with 7 updates
- chore(deps): bump github/codeql-action/upload-sarif (#32449)
- chore(deps): bump github/codeql-action/analyze from 4.37.1 to 4.37.2
- chore(deps): bump github/codeql-action/autobuild from 4.37.1 to 4.37.2
- chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.2
- chore(deps): bump github/codeql-action/autobuild from 4.37.0 to 4.37.1 (#32381)
- chore(deps): bump github/codeql-action/upload-sarif (#32382)
- ci: auto-label PRs targeting dev-v3 (#32340)
- chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 (#32331)
- chore(deps): bump github.com/mattn/go-shellwords from 1.0.13 to 1.0.14 (#32332)
- chore(deps): bump github/codeql-action/analyze from 3.26.6 to 4.37.0 (#32357)
- chore(deps): bump github/codeql-action/upload-sarif (#32360)
- chore(deps): bump github/codeql-action/init from 3.26.6 to 4.37.0 (#32359)
- chore(deps): bump golang/govulncheck-action from 1.0.4 to 1.1.0 (#32356)
- chore(deps): bump golangci/golangci-lint-action from 6.1.1 to 9.3.0 (#32354)
- chore(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.3 (#32353)
- chore(deps): bump golang.org/x/text from 0.38.0 to 0.40.0 (#32310)
- chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 (#32308)
- chore(deps): bump golang.org/x/term from 0.44.0 to 0.45.0 (#32306)
- fix(engine): prevent Files.Lines panic on empty file
- fix: drop containerd v1 dep to resolve govulncheck CVEs
- chore(deps): bump github.com/containerd/containerd from 1.7.32 to 1.7.33
- chore(deps): bump github.com/cyphar/filepath-securejoin
- chore(deps): bump the k8s-io group with 2 updates
- chore(deps): bump the k8s-io group across 1 directory with 2 updates
- fix(registry): keep credentials on plain-HTTP fallback with oras-go v2.6.1
- chore(deps): bump oras.land/oras-go/v2 from 2.6.0 to 2.6.1
- chore(deps): bump golang.org/x/crypto from 0.52.0 to 0.53.0
- chore(deps): bump golang.org/x/term from 0.43.0 to 0.44.0
- chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0
- ci: bump golangci-lint to v2.11.3 for go 1.26
- chore(deps): bump github.com/lib/pq from 1.11.2 to 1.12.3
- chore(deps): bump github.com/distribution/distribution/v3
- chore(deps): bump github.com/containerd/containerd from 1.7.30 to 1.7.32
- chore(deps): bump github.com/Masterminds/semver/v3 from 3.4.0 to 3.5.0
- chore(deps): bump github.com/mattn/go-shellwords from 1.0.12 to 1.0.13
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0
- fix(deps): bump golang.org/x/net to v0.55.0 to address GO-2026-5026
- chore(deps): bump k8s.io/klog/v2 from 2.130.1 to 2.140.0
- chore(deps): bump golang.org/x/text from 0.35.0 to 0.37.0
- [v3] Bump to version v3.21 (#32103)
- [v3 backport] Fix rollback for missing resources
- fix(action): avoid nil REST…
- Record
SUSE-SU-2026:4417-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
oras.land/oras-go/v2Go |
through 2.6.1 | 2.6.2 |
golang-oras-oras-goDebian:12 |
All versions, plus listed versions 1.1.1-12.5.0-12.6.0-12.6.2-12.6.2-2 |
None known |
golang-oras-oras-goDebian:13 |
All versions, plus listed versions 2.5.0-12.6.0-12.6.2-12.6.2-2 |
None known |
golang-oras-oras-goDebian:14 |
before 2.6.2-1, plus listed versions 2.5.0-12.6.0-1 |
2.6.2-1 |
oras.land/oras-go/v2Go |
before 2.6.2 | 2.6.2 |
oras.land/oras-go/v2Root:Go |
before v2.6.1-aikido.2 | v2.6.1-aikido.2v2.6.1-aikido.3v2.6.0-aikido.2 |
rootio-oras.land/oras-go/v2Root:Go |
before v2.6.1-root.io.2 | v2.6.1-root.io.2v2.6.1-root.io.3v2.6.0-root.io.2 |
helmSUSE:Linux Enterprise Micro 5.5 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Module for Containers 15 SP7 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Module for Package Hub 15 SP7 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
Show 13 moreShow less
| Package | Affected | Fixed |
|---|---|---|
helmSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
helmSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 2 CVEs |
before 3.22.0-150000.1.99.1 | 3.22.0-150000.1.99.1 |
golang-oras-oras-goUbuntu:24.04:LTS |
All versions, plus listed versions 1.1.1-1ubuntu1 |
None known |
golang-oras-oras-goUbuntu:26.04:LTS |
All versions, plus listed versions 2.5.0-12.6.0-1 |
None known |
helm3openSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 3.22.0-1.1 | 3.22.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-85731 is a high vulnerability (CVSS 8.8) in Oras-project Oras-go, published September 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.68%, the 52nd percentile. Fixed in oras.land/oras-go/v2 2.6.2.
References
github.com/oras-project/oras-go/security/advisories/GHSA-m37j-52j7-pjw7
github.com/oras-project/oras-go/commit/adab2f25ea95ef4e6e41f50db9266a6701399422
github.com/oras-project/oras-go/releases/tag/v2.6.2
nvd.nist.gov/vuln/detail/CVE-2026-85731
github.com/advisories/GHSA-m37j-52j7-pjw7
github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85731.json
Show 9 moreShow less
security-tracker.debian.org/tracker/CVE-2026-85731
github.com/oras-project/oras-go
suse.com/support/update/announcement/2026/suse-su-20264417-1
bugzilla.suse.com/1281104
bugzilla.suse.com/1281112
suse.com/security/cve/CVE-2026-85731
suse.com/security/cve/CVE-2026-85732
ubuntu.com/security/CVE-2026-85731
cve.org/CVERecord?id=CVE-2026-85731
Left out here: the rest of 3 source descriptions. The JSON record has them.