
Este estudio analiza vulnerabilidades de deserialización de pickle en Python, centrándose en CVE-2024-3568 en TFAutoModel de Hugging Face Transformers. Reproducimos el exploit para examinar su causa raíz, vectores de ataque y riesgos.
Se presenta el mecanismo de deserialización de pickle y el principio del ataque __reduce__, se reproduce la vulnerabilidad de deserialización CVE-2024-3568 en la librería Hugging Face Transformers, se analizan los riesgos de seguridad en la librería Transformers y se proponen soluciones efectivas de refuerzo de seguridad. Consulte el documento PDF del experimento para más detalles.
(El código del autor del POC se encuentra en CVE-2024-3568 o en la carpeta author_inf)
Ubicación de la vulnerabilidad
Método TFAutoModel.load_repo_checkpoint() (Transformers ≤ v4.37.2)
Principio del ataque
El archivo extra_data.pickle en un checkpoint malicioso desencadena RCE al deserializarse mediante pickle.load().
Alcance del impacto
# 详细配置说明见实验PDF
pip install transformers==4.37.2 tensorflow
git clone https://github.com/llm-sec/transformer-hacker
Consulte el documento PDF para más detalles.
test.py y test2.py contienen el análisis del principio (con la ayuda de AI问小白; gracias a la mejora de productividad que aportan los avances tecnológicos).
Generación del checkpoint malicioso (Los comandos específicos se encuentran en el documento PDF)
Disparo de la vulnerabilidad (El ejemplo de código se encuentra en el documento PDF)
Verificación del ataque (El método de verificación se encuentra en el documento PDF)
load_repo_checkpoint()Análisis técnico detallado: El principio completo de la vulnerabilidad, el proceso de explotación y las estrategias de defensa se encuentran en el documento PDF del experimento. Implementación del POC: El código del autor del POC se encuentra en CVE-2024-3568 o en la carpeta author_inf.