The path traversal issue in kubectl cp – CVE-2019-11246
Developers often copy files to or from containers in a Pod for debugging. kubectl cp
allows developers to copy files from or to a container in a Pod (by default, this is done in the first container within the Pod).
To copy files to a Pod, you can use the following:
kubectl cp /tmp/test <pod>:/tmp/bar
To copy files from a Pod, you can use the following:
kubectl cp <some-pod>:/tmp/foo /tmp/bar
When files are copied from a pod, Kubernetes first creates a TAR archive of the files inside the container. It then copies the TAR archive to the client and then finally unpacks the TAR archive for the client. In 2018, researchers found a way to use kubectl cp
to overwrite files on the client's host. If an attacker has access to a pod, this vulnerability could be used to replace the TAR archive with special files that use relative paths by overwriting the original TAR binary with a malicious one. When...