数か月前、kubectl cp に関連する脆弱性 CVE-2019-11246 が公開されました。 Kubernetes は、kubectl cp に関連する新たな脆弱性 CVE-2019-11249 を発表しました。 この脆弱性により、攻撃者は kubectl cp コマンドを実行することでディレクトリトラバーサルが可能になり、TAR パッケージに保存された悪意あるファイルを、ホスト上の任意のパスに書き込むことができます。 このプロセスは、ユーザーのシステム権限によってのみ制限されます。

背景情報

kubectl cp は、コンテナーとホスト間でファイルをコピーするコマンドです。 kubectl cp コマンドを実行してコンテナーからホストにファイルをコピーすると、コンテナー内に TAR ファイルを作成する、作成したファイルをホストに送信する、ホスト上でそのファイルを解凍する、という 3 つのステップが実行されます。

攻撃者に kubectl cp コマンドを実行する権限があり、TAR パッケージに悪意あるファイルが含まれている場合、ディレクトリトラバーサルを実行できます。

この脆弱性の修正により、kubectl cp コマンドは TAR パッケージの解凍時に、すべてのファイルのターゲットパスをより厳密に検証します。 解凍されたファイルを、kubectl cp コマンドのコピー先ディレクトリ以外のパスにコピーすることはできません。

この脆弱性によるセキュリティ問題の詳細は、Kubernetes のセキュリティに関する発表をご参照ください。

脆弱性 PR の詳細は、https://github.com/kubernetes/kubernetes/pull/80436/ にアクセスしてください。

脆弱なバージョン

kubectl version --client コマンドを実行すると、kubectl のバージョンを確認できます。

以下に脆弱なバージョンを示します。

  • Kubectl 1.0.x-1.12.x
  • Kubectl 1.13.0-1.13.8 (v1.13.9 で修正済み)
  • Kubectl 1.14.0-1.14.4 (v1.14.5 で修正済み)
  • Kubectl 1.15.0-1.15.1 (v1.15.2 で修正済み)

対策

この脆弱性を修正するには、kubectl をアップグレードし、kubectl のバージョンを確認する必要があります。 詳細は、『Install and Set Up kubectl』をご参照ください。

  • kubectl のバージョンが 1.13.x の場合、1.13.9 にアップグレードしてください。
  • kubectl のバージョンが v1.14.x の場合、1.14.5 にアップグレードしてください。
  • kubectl のバージョンが 1.15.x の場合、1.15.2 にアップグレードしてください。
  • kubectl のバージョンが 1.12.x 以前の場合、1.13.9、1.14.5、または 1.15.2 にアップグレードしてください。