Kubernetesコミュニティは、kubectl cpコマンドに関連する脆弱性CVE-2019-11249を開示しました。 攻撃者はこの脆弱性を悪用して、ディレクトリトラバーサルを介してホスト上の宛先パス以外のパスに悪意のあるファイルを書き込むことができます。 悪意のあるファイルはコンテナのTARパッケージに保存されます。 このプロセスは、現在のユーザーのシステム権限によってのみ制限されます。
背景情報
kubectl cp は、コンテナーとホスト間でファイルをコピーするコマンドです。 kubectl cpコマンドを実行してコンテナからホストにファイルをコピーすると、Kubernetesは次の3つの手順を実行します。tarコマンドを実行してコンテナにTARパッケージを作成し、パッケージをホストに送信し、ホストでパッケージを解凍します。
攻撃者がkubectl cpコマンドを実行する権限を持っている場合、ディレクトリトラバーサルを介して悪意のあるTARパッケージを送信できます。
この脆弱性を修正するには、kubectl cpコマンドを使用して、TARパッケージの解凍中にすべてのファイルの宛先パスをより厳密に検証する必要があります。 コマンドは、解凍されたファイルを宛先パス以外のパスにコピーすることを禁止する必要があります。 これにより、TARパッケージ解凍中の悪意のある攻撃を防ぎます。
詳細は、「Kubernetesのお知らせ」をご参照ください。
この脆弱性を修正するためのプルリクエストの詳細については、「CVE-2019-11249」をご参照ください。
影響
kubectl version -- clientコマンドを実行して、kubectlのバージョンを確認できます。
次の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のインストールと設定」をご参照ください。 kubectlのインストール後にkubectlのバージョンを確認します。
- kubectlのバージョンが1.13.xの場合は、1.13.9にアップグレードします。
- kubectlのバージョンが1.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 にアップグレードしてください。