CVE-2026-39822 json
Root escape via symlink plus trailing slash in os
published 2026-07-07 4 mo ago modified 2026-10-25 14 d ago also BIT-golang-2026-39822 , EUVD-2026-42316 , GO-2026-4970
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 14%
- public exploits
- 0
- none known
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.
Patch / fix
- bitnami golang 1.25.12, 1.26.5, 1.27.0
- go stdlib 1.25.12, 1.26.5, 1.27.0-rc.2
- Go standard library os 1.25.12, 1.26.5, 1.27.0-rc.2
- golang-1.26 Debian 14 1.26.5-1
- golang-1.27 Debian 14 1.27~rc2-1
debian advisories DEBIAN-CVE-2026-39822
- openshift openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el8
- openshift openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el9
- openshift-kubelet openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el8
- openshift-kubelet openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el9
- openshift-hyperkube openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el8
- openshift-hyperkube openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el9
- openshift-kube-apiserver openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el8
- openshift-kube-apiserver openshift 4.20 4.20.0-202609041738.p2.g4012064.assembly.stream.el9
red hat advisories RHSA-2026:66375RHSA-2026:66350RHSA-2026:61253RHSA-2026:57649RHSA-2026:57361RHSA-2026:49712
- go1.25-openssl SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Development Tools 15 SP7 1.25.12-150600.13.21.1
- go1.26-openssl SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Development Tools 15 SP7 1.26.5-150600.13.9.1
- go1.26-openssl SLES for SAP 15 SP5, SLES for SAP 15 SP4, SLES 15 SP5-LTSS +5 more 1.26.5-150000.1.12.1
- go1.25-openssl SLES for SAP 15 SP5, SLES for SAP 15 SP4, SLES 15 SP5-LTSS +5 more 1.25.12-150000.1.27.1
- go1.26 SLES for SAP applications 16.0, SLES 16.0 1.26.5-160000.1.1
- go1.25 SLES for SAP applications 16.0, SLES 16.0 1.25.12-160000.1.1
- go1.26-openssl SLES for SAP applications 16.0, SLES 16.0 1.26.5-160000.1.1
- go1.25-openssl SLES for SAP applications 16.0, SLES 16.0 1.25.12-160000.1.1
suse advisories SUSE-SU-2026:3151-1SUSE-SU-2026:3102-1SUSE-SU-2026:3047-1SUSE-SU-2026:3046-1SUSE-SU-2026:22656-1SUSE-SU-2026:22643-1
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
- loki openSUSE Tumbleweed 3.7.4-1.1
- go1.26 openSUSE Leap 16.0 1.26.5-160000.1.1
- go1.25 openSUSE Leap 16.0 1.25.12-160000.1.1
- go1.26-openssl openSUSE Leap 16.0 1.26.5-160000.1.1
- go1.25-openssl openSUSE Leap 16.0 1.25.12-160000.1.1
- go1.26 openSUSE Tumbleweed 1.26.5-1.1
- go1.25 openSUSE Tumbleweed 1.25.12-1.1
opensuse advisories openSUSE-SU-2026:21483-1openSUSE-SU-2026:11393-1openSUSE-SU-2026:21341-1openSUSE-SU-2026:21324-1openSUSE-SU-2026:21321-1openSUSE-SU-2026:21319-1
- buildah AlmaLinux 9 2:1.43.1-4.el9_8
- buildah-tests AlmaLinux 9 2:1.43.1-4.el9_8
- buildah AlmaLinux 10 2:1.43.1-4.el10_2
- buildah-tests AlmaLinux 10 2:1.43.1-4.el10_2
- podman AlmaLinux 10 7:5.8.2-5.el10_2.alma.1
- podman-tests AlmaLinux 10 7:5.8.2-5.el10_2.alma.1
- podman-docker AlmaLinux 10 7:5.8.2-5.el10_2.alma.1
- podman-remote AlmaLinux 10 7:5.8.2-5.el10_2.alma.1
almalinux advisories ALSA-2026:38493ALSA-2026:38494ALSA-2026:38495ALSA-2026:38878ALSA-2026:38995ALSA-2026:37435
- delve Rocky Linux 8 1.26.1-1.module+el8.10.0+40244+e7cb3ff8
- golang Rocky Linux 8 1.26.5-1.module+el8.10.0+40244+e7cb3ff8
- buildah Rocky Linux 10 2:1.43.1-4.el10_2
- podman Rocky Linux 10 7:5.8.2-5.el10_2
- buildah Rocky Linux 9 2:1.43.1-4.el9_8
- podman Rocky Linux 9 6:5.8.2-5.el9_8
- golang Rocky Linux 10 1.26.5-1.el10_2
- golang Rocky Linux 9 1.26.5-1.el9_8
rocky linux advisories RLSA-2026:38995RLSA-2026:38494RLSA-2026:38495RLSA-2026:38493RLSA-2026:38878RLSA-2026:37436
- go Alpine 3.24 1.26.8-r0
alpine advisories ALPINE-CVE-2026-39822
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- golang Azure Linux 3.0 1.25.12-1
- golang Azure Linux 3.0 1.26.5-1
azure linux advisories AZL-92303AZL-92309
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- go.dev/issue/79005 patch
- go.dev/cl/797880 patch
- groups.google.com/g/golang-announce/c/OrmQE_Yp5Sc advisory
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-39822 updated cvss 7.8
golang: Go os.Root: Symlink following vulnerability allows directory traversal
-
Red Hat ExternalDNS Operator edo/external-dns-rhel9, edo/external-dns-rhel9-operator Red Hat File Integrity Operator compliance/openshift-file-integrity-rhel8-operatoraffected: workaround, no fix available
-
Red Hat Logging Subsystem for Red Hat OpenShift openshift-logging/cluster-logging-rhel9-operatoraffected: workaround, no fix planned “Will not fix”
-
Red Hat Multicluster Engine for Kubernetes multicluster-engine/assisted-service-9-rhel9, multicluster-engine/managedcluster-import-controller-rhel9 Red Hat Advanced Cluster Management for Kubernetes 2 rhacm2/kube-rbac-proxy-rhel9, rhacm2/multicluster-observability-rhel9-operatoraffected: workaround, no fix available
-
Red Hat Ceph Storage 7 rhceph/grafana-rhel9 Red Hat Ceph Storage 8 rhceph/grafana-rhel9affected: workaround, no fix available “Fix deferred”
-
Red Hat Enterprise Linux 10 podman 5.8.2-3.el10_2 Red Hat Enterprise Linux AI (RHEL AI) 3 golang 1.25.1-1.el9 Red Hat OpenShift Container Platform 4 rh-osbs/openshift-golang-builder, openshift4/ose-kube-rbac-proxy-rhel9affected: workaround, no fix available
-
Red Hat OpenShift Container Platform 5 rh-osbs/openshift-golang-builder, openshift5/ose-kube-rbac-proxy-rhel9, openshift 4.22.0-202606301456.p2.g03c5938.assembly.stream.el9affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift Virtualization 4 rh-osbs/openshift-golang-builderaffected: workaround, no fix available
-
Red Hat Cert Manager support for Red Hat OpenShift release 1.18 cert-manager/cert-manager-operator-rhel9 1789029076, cert-manager/jetstack-cert-manager-rhel9 1791459711, cert-manager/cert-manager-istio-csr-rhel9 1791459759, cert-manager/jetstack-cert-manager-acmesolver-rhel9 1791459707fixed: vendor fix RHSA-2026:82354
show 27 moreshow fewer
-
Red Hat Cluster Observability Operator 1.5 cluster-observability-operator/alertmanager-rhel9 1793661698, cluster-observability-operator/alertmanager-rhel9 1793825721fixed: vendor fix RHSA-2026:95591
-
Red Hat multicluster engine for Kubernetes 2.8 multicluster-engine/work-rhel9 1792867410, multicluster-engine/placement-rhel9 1792887454, multicluster-engine/registration-rhel9 1792885410, multicluster-engine/addon-manager-rhel9 1792870657, multicluster-engine/multicloud-manager-rhel9 1792882788, multicluster-engine/kube-rbac-proxy-mce-rhel9 1793020034, +3 morefixed: vendor fix RHSA-2026:92303
-
Red Hat OpenShift Compliance Operator 1 compliance/openshift-compliance-rhel8-operator 1793223561fixed: vendor fix RHSA-2026:95612
-
Red Hat Advanced Cluster Security 4.9 advanced-cluster-security/rhacs-main-rhel8 1787584486fixed: vendor fix RHSA-2026:59202
-
Red Hat Advanced Cluster Security for Kubernetes 4.11 advanced-cluster-security/rhacs-main-rhel9 1785415868fixed: vendor fix RHSA-2026:48891
-
Red Hat Advanced Cluster Security for Kubernetes for IBM Power, little endian 4.10 advanced-cluster-security/rhacs-main-rhel8 1787584487fixed: vendor fix RHSA-2026:59203
-
Red Hat Enterprise Linux AppStream (v. 8) delve 1.26.1-1.module+el8.10.0+24516+40554724, golang 1.26.5-1.module+el8.10.0+24506+6809f2d9, go-toolset 1.26.5-1.module+el8.10.0+24506+6809f2d9, golang-bin 1.26.5-1.module+el8.10.0+24506+6809f2d9, golang-src 1.26.5-1.module+el8.10.0+24506+6809f2d9, golang-misc 1.26.5-1.module+el8.10.0+24506+6809f2d9, +2 morefixed: vendor fix RHSA-2026:38995
-
Red Hat Enterprise Linux AppStream (v. 9) podman 5.8.2-5.el9_8, golang 1.26.5-1.el9_8, buildah 1.43.1-4.el9_8, go-toolset 1.26.5-1.el9_8, golang-bin 1.26.5-1.el9_8, golang-src 1.26.5-1.el9_8, +8 morefixed: vendor fix RHSA-2026:38493
-
Red Hat Enterprise Linux AppStream (v. 10) golang 1.26.5-1.el10_2, buildah 1.43.1-4.el10_2, go-toolset 1.26.5-1.el10_2, golang-bin 1.26.5-1.el10_2, golang-src 1.26.5-1.el10_2, golang-misc 1.26.5-1.el10_2, +3 morefixed: vendor fix RHSA-2026:38494
-
Red Hat Enterprise Linux AppStream E4S (v.9.2) golang 1.26.5-1.el9_2, go-toolset 1.26.5-1.el9_2, golang-bin 1.26.5-1.el9_2, golang-src 1.26.5-1.el9_2, golang-misc 1.26.5-1.el9_2, golang-race 1.26.5-1.el9_2, +1 morefixed: vendor fix RHSA-2026:61253
-
Red Hat Enterprise Linux AppStream E4S (v.9.4) golang 1.26.5-1.el9_4, go-toolset 1.26.5-1.el9_4, golang-bin 1.26.5-1.el9_4, golang-src 1.26.5-1.el9_4, golang-misc 1.26.5-1.el9_4, golang-race 1.26.5-1.el9_4, +1 morefixed: vendor fix RHSA-2026:57649
-
Red Hat Enterprise Linux AppStream EUS (v. 10.0) golang 1.26.5-1.el10_0, go-toolset 1.26.5-1.el10_0, golang-bin 1.26.5-1.el10_0, golang-src 1.26.5-1.el10_0, golang-misc 1.26.5-1.el10_0, golang-race 1.26.5-1.el10_0, +1 morefixed: vendor fix RHSA-2026:49702
-
Red Hat Enterprise Linux AppStream EUS (v.9.6) golang 1.26.5-1.el9_6, go-toolset 1.26.5-1.el9_6, golang-bin 1.26.5-1.el9_6, golang-src 1.26.5-1.el9_6, golang-misc 1.26.5-1.el9_6, golang-race 1.26.5-1.el9_6, +1 morefixed: vendor fix RHSA-2026:49712
-
Red Hat Hardened Images golang1.26 1.26.5-0.1.hum1, golang1.25 1.25.12-0.1.hum1, golang1.26-bin 1.26.5-0.1.hum1, golang1.26-src 1.26.5-0.1.hum1, golang1.25-bin 1.25.12-0.1.hum1, golang1.25-src 1.25.12-0.1.hum1, +4 morefixed: vendor fix RHSA-2026:36510
-
Red Hat OpenShift AI 3.4 rhai/base-image-neuron-rhel9 1793042008fixed: vendor fix RHSA-2026:91248
-
Red Hat OpenShift AI 3.5 rhai/base-image-neuron-rhel9 1793042008fixed: vendor fix RHSA-2026:91249
-
Red Hat OpenShift Container Platform 4.20 openshift 4.20.0-202609041738.p2.g4012064.assembly.stream.el8, openshift 4.20.0-202609041738.p2.g4012064.assembly.stream.el9, openshift-kubelet 4.20.0-202609041738.p2.g4012064.assembly.stream.el8, openshift-kubelet 4.20.0-202609041738.p2.g4012064.assembly.stream.el9, openshift-hyperkube 4.20.0-202609041738.p2.g4012064.assembly.stream.el8, openshift-hyperkube 4.20.0-202609041738.p2.g4012064.assembly.stream.el9, +6 morefixed: vendor fix RHSA-2026:66375
-
Red Hat OpenShift Container Platform 4.21 openshift 4.21.0-202609022229.p2.g93afd70.assembly.stream.el8, openshift 4.21.0-202609022229.p2.g93afd70.assembly.stream.el9, openshift 4.21.0-202609022229.p2.g93afd70.assembly.stream.el10, openshift-kubelet 4.21.0-202609022229.p2.g93afd70.assembly.stream.el9, openshift-kubelet 4.21.0-202609022229.p2.g93afd70.assembly.stream.el10, openshift-hyperkube 4.21.0-202609022229.p2.g93afd70.assembly.stream.el8, +8 morefixed: vendor fix RHSA-2026:66350
-
Red Hat OpenShift Container Platform 4.22 openshift 4.22.0-202608190726.p2.g05744ab.assembly.stream.el8, openshift 4.22.0-202608190726.p2.g05744ab.assembly.stream.el9, openshift-kubelet 4.22.0-202608190726.p2.g05744ab.assembly.stream.el9, openshift-hyperkube 4.22.0-202608190726.p2.g05744ab.assembly.stream.el8, openshift-hyperkube 4.22.0-202608190726.p2.g05744ab.assembly.stream.el9, openshift-kube-apiserver 4.22.0-202608190726.p2.g05744ab.assembly.stream.el9, +2 morefixed: vendor fix RHSA-2026:57361
-
Red Hat OpenShift distributed tracing 3.10.1 rhosdt/tempo-rhel9 1784775768, rhosdt/tempo-query-rhel9 1784775793, rhosdt/tempo-gateway-rhel9 1784775770, rhosdt/tempo-rhel9-operator 1784775782, rhosdt/tempo-operator-bundle 1784777166, rhosdt/tempo-gateway-opa-rhel9 1784775772, +3 morefixed: vendor fix RHSA-2026:54773
-
Red Hat Quay 3.9 quay/quay-rhel8 1785950004fixed: vendor fix RHSA-2026:50931
-
Red Hat Quay 3.10 quay/quay-rhel8 1786395065fixed: vendor fix RHSA-2026:53520
-
Red Hat Quay 3.12 quay/quay-rhel8 1786170635fixed: vendor fix RHSA-2026:52968
-
Red Hat Quay 3.14 quay/quay-rhel8 1788593843fixed: vendor fix RHSA-2026:70267
-
Red Hat Quay 3.16 quay/quay-rhel9 1789563753fixed: vendor fix RHSA-2026:69255
-
Red Hat Quay 3.17 quay/quay-rhel9 1790690298fixed: vendor fix RHSA-2026:74511
-
Red Hat Assisted Installer for Red Hat OpenShift Container Platform 2 rhai/assisted-installer-rhel9not affected: vulnerable code not present
85 more not affected in the full advisory
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 4 mo ago
Exploit prediction
0.23% chance of exploitation in the next 30 days, higher than 14% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| OSV | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | golang | <1.25.12 >=1.26.0-0, <1.26.5 >=1.27.0-0, <1.27.0 |
1.25.12 1.26.5 1.27.0 |
| go | stdlib | <1.25.12 >=1.26.0-0, <1.26.5 >=1.27.0-0, <1.27.0-rc.2 |
1.25.12 1.26.5 1.27.0-rc.2 |
Affected products
- Go standard library os
Classification
- Weakness
-
- CWE-61 UNIX Symbolic Link (Symlink) Following
References
-
go.dev
/issue/79005
issue-tracking, patch, report
-
groups.google.com
/g/golang-announce/c/OrmQE_Yp5Sc
mailing-list, patch, vendor-advisory, advisory, web
-
go.dev
/cl/797880
patch
-
pkg.go.dev
/vuln/GO-2026-4970
vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-39822
web
Sources
- CVE List CVE-2026-39822
- NVD CVE-2026-39822
- OSV BIT-golang-2026-39822
- OSV GO-2026-4970
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.