CVE-2021-25741 Symlink Exchange Can Allow Host Filesystem Access
Attackers can exploit symlink exchanges in subpath volume mounts to access or modify files on the host filesystem outside the intended volume.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-25741?
CVE-2021-25741 is a high-severity path traversal vulnerability in Kubernetes Kubernetes, published on 20 Sep 2021. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
A security issue was discovered in Kubernetes where a user may be able to create a container with subpath volume mounts to access files & directories outside of the volume, including on the host filesystem.
Which versions are affected by CVE-2021-25741?
9 open source packages ship an affected version, including k8s.io/kubernetes. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
k8s.io/kubernetes Go | All versions | 1.19.15, 1.20.11, 1.21.5, 1.22.2 |
k8s.io/kubernetes Go | All versions | 1.19.15 |
k8s.io/kubernetes Go | All versions | 1.19.15 |
k8s.io/kubernetes Go | From 1.20.0 | 1.20.11 |
k8s.io/kubernetes Go | From 1.20.0 | 1.20.11 |
k8s.io/kubernetes Go | From 1.21.0 | 1.21.5 |
3 more packages
k8s.io/kubernetes Go | From 1.21.0 | 1.21.5 |
k8s.io/kubernetes Go | From 1.22.0 | 1.22.2 |
k8s.io/kubernetes Go | From 1.22.0 | 1.22.2 |
Linux distribution packages (25)
atomic-openshift Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-clients Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-clients-redistributable Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-docker-excluder Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-excluder Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-hyperkube Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-hypershift Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-master Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-node Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-pod Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-sdn-ovs Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-template-service-broker Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
atomic-openshift-tests Red Hat:openshift:3.11::el7 | All versions | 0:3.11.524-1.git.0.2dffce7.el7 |
openshift Red Hat:openshift:4.6::el7 | All versions | 0:4.6.0-202109180038.p0.git.d5ed12c.assembly.stream.el7 |
openshift-hyperkube Red Hat:openshift:4.6::el7 | All versions | 0:4.6.0-202109180038.p0.git.d5ed12c.assembly.stream.el7 |
openshift Red Hat:openshift:4.6::el8 | All versions | 0:4.6.0-202109180038.p0.git.d5ed12c.assembly.stream.el8 |
openshift-hyperkube Red Hat:openshift:4.6::el8 | All versions | 0:4.6.0-202109180038.p0.git.d5ed12c.assembly.stream.el8 |
openshift Red Hat:openshift:4.7::el7 | All versions | 0:4.7.0-202109172126.p0.git.bbbc079.assembly.stream.el7 |
openshift-hyperkube Red Hat:openshift:4.7::el7 | All versions | 0:4.7.0-202109172126.p0.git.bbbc079.assembly.stream.el7 |
openshift Red Hat:openshift:4.7::el8 | All versions | 0:4.7.0-202109172126.p0.git.bbbc079.assembly.stream.el8 |
openshift-hyperkube Red Hat:openshift:4.7::el8 | All versions | 0:4.7.0-202109172126.p0.git.bbbc079.assembly.stream.el8 |
openshift Red Hat:openshift:4.8::el7 | All versions | 0:4.8.0-202109180335.p0.git.a620f50.assembly.stream.el7 |
openshift-hyperkube Red Hat:openshift:4.8::el7 | All versions | 0:4.8.0-202109180335.p0.git.a620f50.assembly.stream.el7 |
openshift Red Hat:openshift:4.8::el8 | All versions | 0:4.8.0-202109180335.p0.git.a620f50.assembly.stream.el8 |
openshift-hyperkube Red Hat:openshift:4.8::el8 | All versions | 0:4.8.0-202109180335.p0.git.a620f50.assembly.stream.el8 |
Products include Kubernetes Kubernetes.
How do I fix CVE-2021-25741?
Upgrade k8s.io/kubernetes to a fixed version for your release line: 1.19.15, 1.20.11, 1.21.5 or 1.22.2.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2021-25741 being exploited?
There is no known exploitation of CVE-2021-25741 in the wild and no public exploit code.
Public exploit code: 3 proofs of concept on GitHub.
Other vulnerabilities in Kubernetes Kubernetes
- CVE-2018-1002105 Privilege Escalation in Kubernetes
- CVE-2017-1000056 Kubernetes Privilege Escalation
- CVE-2016-1906 Authorization bypass in Openshift
- CVE-2023-3676 Kubernetes - Windows nodes - Insufficient input sanitization leads to privilege escalation
- CVE-2023-3955 Kubernetes - Windows nodes - Insufficient input sanitization leads to privilege escalation
Sources
Also known as CLEANSTART-2025-RU72317, DEBIAN-CVE-2021-25741, GHSA-f5f7-6478-qm6p, GO-2022-0910, RHSA-2021:3631, RHSA-2021:3635 and 2 more.