CVE Vulnerabilities

CVE-2019-1002101

Improper Link Resolution Before File Access ('Link Following')

Published: Apr 01, 2019 | Modified: Nov 07, 2023
CVSS 3.x
5.5
MEDIUM
Source:
NVD
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
CVSS 2.x
5.8 MEDIUM
AV:N/AC:M/Au:N/C:N/I:P/A:P
RedHat/V2
RedHat/V3
5.3 MODERATE
CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N
Ubuntu
MEDIUM

The kubectl cp command allows copying files between containers and the user machine. To copy files from a container, Kubernetes creates a tar inside the container, copies it over the network, and kubectl unpacks it on the user’s machine. If the tar binary in the container is malicious, it could run any code and output unexpected, malicious results. An attacker could use this to write files to any path on the user’s machine when kubectl cp is called, limited only by the system permissions of the local user. The untar function can both create and follow symbolic links. The issue is resolved in kubectl v1.11.9, v1.12.7, v1.13.5, and v1.14.0.

Weakness

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.

Affected Software

Name Vendor Start Version End Version
Kubernetes Kubernetes 1.11.0 (including) 1.11.9 (excluding)
Kubernetes Kubernetes 1.12.0 (including) 1.12.7 (excluding)
Kubernetes Kubernetes 1.13.0 (including) 1.13.5 (excluding)
Kubernetes Kubernetes 1.14.0 (including) 1.14.0 (including)
Red Hat OpenShift Container Platform 3.10 RedHat atomic-enterprise-service-catalog-1:3.10.127-1.git.55.b54f8c7.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat atomic-openshift-0:3.10.127-1.git.0.dab74c6.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat atomic-openshift-descheduler-0:3.10.127-1.git.153.bc1eddd.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat atomic-openshift-dockerregistry-0:3.10.127-1.git.0.f8aa6dd.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat atomic-openshift-node-problem-detector-0:3.10.127-1.git.0.4f5519b.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat atomic-openshift-web-console-0:3.10.127-1.git.50.eab7949.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat golang-github-prometheus-node_exporter-0:3.10.127-1.git.0.8ebe819.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat openshift-ansible-0:3.10.127-1.git.0.131da09.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat openshift-enterprise-cluster-capacity-0:3.10.127-1.git.0.44580c6.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat python-libcloud-0:2.2.1-20180102gitd701bf9.el7 *
Red Hat OpenShift Container Platform 3.10 RedHat rubygem-fluent-plugin-viaq_data_model-0:0.0.18-1.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-enterprise-service-catalog-1:3.11.98-1.git.0.a7877b0.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-0:3.11.98-1.git.0.0cbaff3.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-cluster-autoscaler-0:3.11.98-1.git.0.3b82207.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-descheduler-0:3.11.98-1.git.153.6c2426d.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-dockerregistry-0:3.11.98-1.git.0.27979f1.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-metrics-server-0:3.11.98-1.git.52.0623d01.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-node-problem-detector-0:3.11.98-1.git.0.83348c7.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-service-idler-0:3.11.98-1.git.14.1793066.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat atomic-openshift-web-console-0:3.11.98-1.git.50.bd70c76.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat golang-github-openshift-oauth-proxy-0:3.11.98-1.git.0.fd9716c.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat golang-github-prometheus-alertmanager-0:3.11.98-1.git.92.7ebe477.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat golang-github-prometheus-node_exporter-0:3.11.98-1.git.0.b02f11c.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat golang-github-prometheus-prometheus-0:3.11.98-1.git.0.61907ad.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat openshift-ansible-0:3.11.98-1.git.0.3cfa7c3.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat openshift-enterprise-autoheal-0:3.11.98-1.git.0.6737a19.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat openshift-enterprise-cluster-capacity-0:3.11.98-1.git.0.deb9250.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat python-certifi-0:2018.4.16-2.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat python-docker-0:2.4.2-2.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat python-libcloud-0:2.2.1-20180102gitd701bf9.el7 *
Red Hat OpenShift Container Platform 3.11 RedHat rubygem-fluent-plugin-viaq_data_model-0:0.0.18-1.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat ansible-service-broker-0:1.1.20-1.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat atomic-openshift-0:3.9.74-1.git.0.78e56ea.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat atomic-openshift-dockerregistry-0:3.9.74-1.git.0.b102e93.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat atomic-openshift-web-console-0:3.9.74-1.git.50.93129da.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat cri-o-0:1.9.16-1.git78b2041.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat golang-github-prometheus-node_exporter-0:3.9.74-1.git.0.2ab615c.el7 *
Red Hat OpenShift Container Platform 3.9 RedHat openshift-ansible-0:3.9.74-1.git.0.70a0a63.el7 *
Kubernetes Ubuntu cosmic *
Kubernetes Ubuntu disco *
Kubernetes Ubuntu eoan *
Kubernetes Ubuntu groovy *
Kubernetes Ubuntu hirsute *
Kubernetes Ubuntu impish *
Kubernetes Ubuntu kinetic *
Kubernetes Ubuntu lunar *
Kubernetes Ubuntu mantic *

Potential Mitigations

  • 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