Skip to content

GHSA-6qfg-8799-r575 CVE-2019-11251 GO-2022-0802

Kubernetes kubectl cp Vulnerable to Symlink Attack

Medium Go
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

PackageVulnerableFixed 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.11
1.14.7
1.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

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy 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
Is this in your code?

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