runCコミュニティは最近、脆弱性CVE-2024-21626を発見しました。 攻撃者はこの脆弱性を悪用してコンテナから脱出し、ホストファイルシステムにアクセスしたり、外部バイナリを実行したりできます。 CVE-2024-21626の詳細については、「GHSA-xr7r-f8xq-vfvv」をご参照ください。 できるだけ早い機会にこの脆弱性を修正することを推奨します。
影響を受けるバージョン
Kubernetesバージョン1.20、1.22、1.24、または1.26を実行し、containerd 1.5.13または1.6.20を使用するACK Edgeクラスターが影響を受けます。
[ノードプール] ページに移動し、ノードプールのIDをクリックし、[概要] タブをクリックしてランタイムとそのバージョンを表示します。
ACKクラスターに新しく追加されたノードは影響を受けません。
Dockerランタイムを使用するACKクラスターは影響を受けません。
解決策
スクリプトの使用
脆弱性を修正するには、影響を受けるノードで次のスクリプトを実行する必要があります。
クラスターとアプリケーションの安定性を確保するには、影響を受けるノードでスクリプトをバッチで実行します。 一度にすべてのノードでスクリプトを実行しないでください。
インターネット経由でACKに接続されたノード
wget -qr https://ack-edge-cn.oss-rg-china-mainland.aliyuncs.com/runc-edge-cve.sh -O /tmp/runc-cve.sh && bash /tmp/runc-cve.sh
Express Connect回路を介してACKに接続されたノード
コマンドでACKクラスターのリージョンを指定します。
export REGION=cn-hangzhou; wget -qr "https://aliacs-k8s-${REGION}.oss-${REGION}-internal.aliyuncs.com/public/pkg/edge/runc-edge-cve-internal.sh" -O /tmp/runc-cve.sh && bash /tmp/runc-cve.sh
期待される出力
次の出力は、CVEの脆弱性が環境に存在しないことを示しています。 出力は無視できます。
runc version is low, no cve, is safe
次の出力は、CVEの脆弱性が環境で検出され、修正されたことを示します。 つまり、ノードプール内のすべてのノードにこの脆弱性がある可能性があります。 ノードでスクリプトをバッチで実行し、ビジネスのステータスを確認します。
cve is fixed...ok
バージョン情報
次のコマンドを実行して、修正後のruncのバージョンを照会します。
runc -- version | grep commit | awk -F "-g" '{print $2}'
期待される出力:
390c700 1
脆弱性を修正するために使用されるスクリプトは、runcバージョンを変更またはアップグレードしません。
このバージョンのruncはACKによって維持され、脆弱性が修正されたオープンソースバージョンの影響を受けます。
ロールバック
パッチ適用が要件を満たさない場合は、ノードで次のコマンドを実行して、runcを以前のバージョンにロールバックできます。
runc_path=$(command -v runc)
cp -f ${runc_path}_bak ${runc_path}