GHSA-6qfg-8799-r575 CVE-2019-11251 GO-2022-0802
Kubernetes kubectl cp Vulnerable to Symlink Attack
- Severity
- 5.7 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 2.62%
- Chance of exploitation in the next 30 days. Higher than 85.46% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-59 Improper Link Resolution Before File Access ('Link Following')
- CWE-61 UNIX Symbolic Link (Symlink) Following
- Fix
1.13.11- Upgrade k8s.io/kubernetes to this version or later
Description
The Kubernetes kubectl cp command in versions 1.1-1.12, and versions prior to 1.13.11, 1.14.7, and 1.15.4 allows a combination of two symlinks provided by tar output of a malicious container to place a file outside of the destination directory specified in the kubectl cp invocation. This could be used to allow an attacker to place a nefarious file using a symlink, outside of the destination tree.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| k8s.io/kubernetes | >= 1.13.10, < 1.13.11 |
1.13.11 |
| k8s.io/kubernetes | >= 1.14.6, < 1.14.7 |
1.14.7 |
| k8s.io/kubernetes | >= 1.15.3, < 1.16.0 |
1.16.0 |
| k8s.io/kubernetes | >= 1.13.10, < 1.13.11>= 1.14.6, < 1.14.7>= 1.15.3, < 1.16.0 |
1.13.111.14.71.16.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
k8s.io/kubernetes Go → 1.13.11
- go
go get k8s.io/kubernetes@v1.13.11 && go mod tidy
Severity breakdown
CVSS 3.1 5.7
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- Required
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Weakness
CWE-59: Improper Link Resolution Before File Access ('Link Following')
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
How to prevent it
- Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.
CWE-61: UNIX Symbolic Link (Symlink) Following
The product, when opening a file or directory, does not sufficiently account for when the file is a symbolic link that resolves to a target outside of the intended control sphere. This could allow an attacker to cause the product to operate on unauthorized files.
How to prevent it
- Implementation: Symbolic link attacks often occur when a program creates a tmp directory that stores files/links. Access to the directory should be restricted to the program as to prevent attackers from manipulating the files.
- Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.
References
Advisories
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-r6j8-c6r2-37rr kube-controller-manager is vulnerable to half-blind Server Side Request Forgery through in-tree Portworx StorageClass | Medium | Also affects k8s.io/kubernetes |
| GHSA-4x4m-3c2p-qppc Kubernetes Nodes can delete themselves by adding an OwnerReference | Medium | Also affects k8s.io/kubernetes |
| GHSA-hj2p-8wj8-pfq4 kubernetes allows nodes to bypass dynamic resource allocation authorization checks | Low | Also affects k8s.io/kubernetes |
| GO-2025-3547 Kubernetes kube-apiserver Vulnerable to Race Condition | Low | Also affects k8s.io/kubernetes |
| GHSA-3wgm-2gw2-vh5m Kubernetes GitRepo Volume Inadvertent Local Repository Access | Medium | Also affects k8s.io/kubernetes |
| GHSA-vv39-3w5q-974q Kubernetes allows Command Injection affecting Windows nodes via nodes/*/logs/query API | Medium | Also affects k8s.io/kubernetes |
| GHSA-jgfp-53c3-624w Node Denial of Service via kubelet Checkpoint API | Medium | Also affects k8s.io/kubernetes |
| GHSA-27wf-5967-98gx Kubernetes kubelet arbitrary command execution | High | Also affects k8s.io/kubernetes |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor