High [CVE-2026-39822] Go os.Root: Symlink following vulnerability allows directory traversal
This high-severity Red Hat Linux advisory covers CVE-2026-39822 affecting Red Hat Enterprise Linux 10.0 Extended Update Support, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions.
Aggregated and source-linked by VulniPulse. Data sources, validation and limitations.
VulniPulse record published Record updated
Android app · Google Play
Monitor future Red Hat Linux CVEs from your phone.
Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.
Summary
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. 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. 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. 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.
Affected versions
No affected-version range was extracted from the source record. The vendor advisory is authoritative — check it before change work.
Official advisory · high-confidence parse· fetched 17 days ago·verify at source
- golang-0:1.26.5-1.el10_2
- buildah-2:1.43.1-4.el10_2
- golang-0:1.26.5-1.el10_0
- go-toolset:rhel8-8100020260710105056.a3795dee
- golang-0:1.26.5-1.el9_8
- buildah-2:1.43.1-4.el9_8
- podman-6:5.8.2-5.el9_8
- golang-0:1.26.5-1.el9_2
- golang-0:1.26.5-1.el9_4
- golang-0:1.26.5-1.el9_6
- openshift-0:4.20.0-202609041738.p2.g4012064.assembly.stream.el8
- openshift-0:4.21.0-202609022229.p2.g93afd70.assembly.stream.el10
- openshift-0:4.22.0-202608190726.p2.g05744ab.assembly.stream.el8
- advanced-cluster-security/rhacs-main-rhel8:1787584486
- advanced-cluster-security/rhacs-main-rhel8:1787584487
- advanced-cluster-security/rhacs-main-rhel9:1785415868
- golang1-26-main-1.26.5-0.1.hum1
- golang1-25-main-1.25.12-0.1.hum1
- rhosdt/tempo-gateway-opa-rhel9:1784775772
- rhosdt/tempo-gateway-rhel9:1784775770
- rhosdt/tempo-jaeger-query-rhel9:1784775834
- rhosdt/tempo-operator-bundle:1784777166
- rhosdt/tempo-query-rhel9:1784775793
- rhosdt/tempo-rhel9:1784775768
- rhosdt/tempo-rhel9-operator:1784775782
- rhosdt/opentelemetry-collector-rhel9:1786637598
- rhosdt/opentelemetry-rhel9-operator:1786635175
- quay/quay-rhel8:1786395065
- quay/quay-rhel8:1786170635
- quay/quay-rhel8:1788593843
- quay/quay-rhel9:1789563753
- quay/quay-rhel8:1785950004
- RHSA-2026:37436
- RHSA-2026:38494
- RHSA-2026:49702
- RHSA-2026:38995
- RHSA-2026:37435
- RHSA-2026:38493
- RHSA-2026:38878
- RHSA-2026:61253
- RHSA-2026:57649
- RHSA-2026:49712
- RHSA-2026:66375
- RHSA-2026:66350
- RHSA-2026:57361
- RHSA-2026:59202
- RHSA-2026:59203
- RHSA-2026:48891
- RHSA-2026:36477
- RHSA-2026:36510
Official advisory · high-confidence parse· fetched 17 days ago·verify at source
Mitigation checklist
- 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.
Official advisory · high-confidence parse· fetched 17 days ago·verify at source
Discussion(0)
No comments yet. Share field notes, upgrade gotchas, or questions — verify against the vendor advisory before acting on community advice.
Sign in to join the discussion.