このトピックでは、kubectl cp コマンドに関連する CVE-2019-11246 の脆弱性を修正する方法について説明します。

背景情報

kubectl cp コマンドは、コンテナーとホスト間でファイルをコピーするために使用されます。 コンテナーからホストにファイルをコピーする際、Kubernetes は対応するアーカイブファイルを作成し、ホストに送信するために、まず tar コマンドを実行します。 次に、kubectl がホスト上のアーカイブファイルを解凍します。

CVE-2019-11246 の脆弱性は、パストラバーサルによって kubectl cp コマンドを実行することで、tar パッケージに保存された悪意のあるファイルを、ホスト上の任意のパスに書き込む機会を攻撃者に与えてしまいます。

tar パッケージに悪意のあるファイルが存在する場合、攻撃者は kubectl cp コマンドの実行権限を得て、 パストラバーサル攻撃を行えるようになります。

この脆弱性による影響は、 CVE-2019-1002101 の脆弱性による影響と類似しています。 CVE-2019-1002101 の脆弱性に関する情報は、「 CVE-2019-1002101:kubectl fix potential directory traversal」をご参照ください。

脆弱性 PR についての情報は、「 CVE-2019-11246: Clean links handling in cp's tar code」をご参照ください。

この脆弱性によるセキュリティ問題の詳細については、「 kubernetes-security-announce」をご参照ください。

対策が必要な Kubernetes のバージョンは、以下の通りです。

  • kubectl v1.11.x 以前
  • kubectl v1.12.1-v1.12.8 (v1.12.9 で修正済み)
  • kubectl v1.13.1-v1.13.5 (v1.13.6 で修正済み)
  • kubectl v1.14.1 (v1.14.2 で修正済み)
kubectl version --client コマンドを実行すると、kubectl のバージョンを表示できます。

対応策

kubectl をアップグレードして kubectl のバージョンを確認してください。 詳しくは、「Install and Set Up kubectl」をご参照ください。

  • kubectl が v1.12.x の場合は、v1.12.9 にアップグレードしてください。
  • kubectl が v1.13.x の場合は、v1.13.6 にアップグレードしてください。
  • kubectl が v1.14.x の場合は、v1.14.2 にアップグレードしてください。
  • kubectl が v1.11 またはそれ以前のバージョンの場合、 v1.12.9、v1.13.6、または v1.14.2 にアップグレードしてください。