Every CVE Search/ Get API key

CVE-2026-85731

oras-go: Arbitrary file write outside file.Store root via symlink-chain bypass in tar extraction (pushDir)

8.8 HighFix available

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

0.68%Unchanged since Sep 17, 2026
90%50%10%1%

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 HighCVSS: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 HighCVSS: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:

  1. N nested directories <title>/d0/d1/…/d{N-1}.
  2. A symlink <title>/d0/…/d{N-1}/up → "../../…" (N levels). Both lexically and on disk this resolves to baseAbs, so ensureLinkPath accepts it and resolveRelToBase sees only real directories in its ancestry.
  3. A symlink <title>/escape → "d0/…/d{N-1}/up/../../…/<absTarget>" (N .. components after up). Lexically, filepath.Join(baseAbs, "d0/…/up/../…/<absTarget>") cancels the N .. against up plus d{N-2}…d0, yielding baseAbs/d0/<absTarget> — inside the root, so ensureLinkPath accepts it. resolveRelToBase then walks d0/<absTarget-parents>, none of which are symlinks (they don't exist), so the link is created. At the kernel, resolving baseAbs/d0/…/up first follows up back to baseAbs, and the remaining N .. components climb from baseAbs to /,…
Record
GHSA-m37j-52j7-pjw7
CVSS 3.1
8.8 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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:

  1. N nested directories <title>/d0/d1/…/d{N-1}.
  2. A symlink <title>/d0/…/d{N-1}/up → "../../…" (N levels). Both lexically and on disk this resolves to baseAbs, so ensureLinkPath accepts it and resolveRelToBase sees only real directories in its ancestry.
  3. A symlink <title>/escape → "d0/…/d{N-1}/up/../../…/<absTarget>" (N .. components after up). Lexically, filepath.Join(baseAbs, "d0/…/up/../…/<absTarget>") cancels the N .. against up plus d{N-2}…d0, yielding baseAbs/d0/<absTarget> — inside the root, so ensureLinkPath accepts it. resolveRelToBase then walks d0/<absTarget-parents>, none of which are symlinks (they don't exist), so the link is created. At the kernel, resolving baseAbs/d0/…/up first follows up back to baseAbs, and the remaining N .. components climb from baseAbs to /,…
Record
GHSA-m37j-52j7-pjw7
CVSS 3.1
8.8 HighCVSS: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 HighCVSS: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

Affected packages
PackageAffectedFixed
oras.land/oras-go/v2
Go
through 2.6.1
2.6.2
golang-oras-oras-go
Debian: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-go
Debian:13
All versions, plus listed versions
2.5.0-12.6.0-12.6.2-12.6.2-2
None known
golang-oras-oras-go
Debian:14
before 2.6.2-1, plus listed versions
2.5.0-12.6.0-1
2.6.2-1
oras.land/oras-go/v2
Go
before 2.6.2
2.6.2
oras.land/oras-go/v2
Root: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/v2
Root:Go
before v2.6.1-root.io.2
v2.6.1-root.io.2v2.6.1-root.io.3v2.6.0-root.io.2
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
Affected packages
PackageAffectedFixed
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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
helm
SUSE: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-go
Ubuntu:24.04:LTS
All versions, plus listed versions
1.1.1-1ubuntu1
None known
golang-oras-oras-go
Ubuntu:26.04:LTS
All versions, plus listed versions
2.5.0-12.6.0-1
None known
helm3
openSUSE:Tumbleweed
From an advisory covering 2 CVEs
before 3.22.0-1.1
3.22.0-1.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE 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

Show 9 moreShow less
This page doesn't list everything

Left out here: the rest of 3 source descriptions. The JSON record has them.

MoveEnter Open