Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-39822

Опубликовано: 08 июл. 2026
Источник: redhat
CVSS3: 7.8
EPSS Низкий

Описание

On Unix systems, opening a file in an os.Root improperly follows symlinks to locations outside of the Root when the final path component of the a path is a symbolic link and the path ends in /. For example, 'root.Open("symlink/")' will open "symlink" even when "symlink" is a symbolic link pointing outside of the root.

A flaw was found in the os.Root functionality of Go on Unix systems. This vulnerability allows an attacker to bypass intended directory restrictions by crafting a path that ends with a symbolic link and a trailing slash. When a file is opened in os.Root with such a path, the symbolic link is improperly followed, potentially leading to access to locations outside of the defined root directory. This could result in information disclosure or unauthorized file system access.

Отчет

A flaw was found in Go's os.Root implementation. On Unix systems, os.Root.Open() improperly follows symlinks to locations outside the root directory when the path ends with a trailing slash (e.g., root.Open("symlink/")). This is because openat() with O_NOFOLLOW does not prevent symlink resolution when the path has a trailing /. An attacker able to create symlinks within an os.Root directory could use this to read or write files outside the intended root. The os.Root API was introduced in Go 1.24. Go versions prior to 1.24 are not affected. This issue is fixed in Go 1.25.12 and Go 1.26.5. The following symbols are affected:

  • OpenInRoot: Opens a file or directory within an os.Root.
  • Root.Create: Creates a file inside an os.Root.
  • Root.Open: Opens a path relative to an os.Root.
  • Root.OpenFile: Opens a file with specified flags and permissions inside an os.Root.
  • Root.OpenRoot: Opens a sub-root directory from an os.Root.
  • Root.ReadFile: Reads a file inside an os.Root.
  • Root.WriteFile: Writes a file inside an os.Root.

Меры по смягчению последствий

There is no mitigation for this issue other than updating the Go toolchain to Go 1.25.12 or Go 1.26.5. Programs compiled with Go >= 1.24 that do not use the os.Root API are not affected by this vulnerability. The os.Root API was introduced in Go 1.24. Go versions prior to 1.24 are not affected. This issue is fixed in Go 1.25.12 and Go 1.26.5.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Assisted Installer for Red Hat OpenShift Container Platform 2rhai/assisted-installer-rhel9Not affected
Builds for Red Hat OpenShiftopenshift-builds/openshift-builds-waiters-rhel9Not affected
cert-manager Operator for Red Hat OpenShiftcert-manager/jetstack-cert-manager-rhel9Not affected
Compliance Operatorcompliance/openshift-compliance-operator-bundleNot affected
Confidential Compute Attestationbuild-of-trustee/trustee-rhel9-operatorNot affected
Confidential Compute Attestationopenshift-sandboxed-containers/osc-monitor-rhel9Not affected
Cryostat 4cryostat/cryostat-storage-rhel9Not affected
Custom Metric Autoscaler operator for Red Hat Openshiftcustom-metrics-autoscaler/custom-metrics-autoscaler-rhel9Not affected
Deployment Validation Operatordvo/deployment-validation-rhel8-operatorNot affected
External Secrets Operator for Red Hat OpenShiftexternal-secrets-operator/external-secrets-rhel9Not affected

Показывать по

Дополнительная информация

Статус:

Important
Дефект:
CWE-59
https://bugzilla.redhat.com/show_bug.cgi?id=2498152os: golang: Go os.Root: Symlink following vulnerability allows directory traversal

EPSS

Процентиль: 14%
0.00232
Низкий

7.8 High

CVSS3

Связанные уязвимости

CVSS3: 7.8
ubuntu
23 дня назад

On Unix systems, opening a file in an os.Root improperly follows symlinks to locations outside of the Root when the final path component of the a path is a symbolic link and the path ends in /. For example, 'root.Open("symlink/")' will open "symlink" even when "symlink" is a symbolic link pointing outside of the root.

CVSS3: 7.8
nvd
23 дня назад

On Unix systems, opening a file in an os.Root improperly follows symlinks to locations outside of the Root when the final path component of the a path is a symbolic link and the path ends in /. For example, 'root.Open("symlink/")' will open "symlink" even when "symlink" is a symbolic link pointing outside of the root.

msrc
16 дней назад

Root escape via symlink plus trailing slash in os

CVSS3: 7.8
debian
23 дня назад

On Unix systems, opening a file in an os.Root improperly follows symli ...

rocky
17 дней назад

Important: podman security update

EPSS

Процентиль: 14%
0.00232
Низкий

7.8 High

CVSS3