DocArray, Prototype Pollution, CVE-2025-5150 (Critical)

Listen to this Post

How CVE-2025-5150 Works

This critical vulnerability (CVSS 5.3) in DocArray ≤0.40.1 stems from improper input validation in the `__getitem__` method within torch_dataset.py. Attackers exploit prototype pollution via crafted API requests, injecting malicious attributes into object prototypes. Remote exploitation is possible through the Web API component, allowing unauthorized modification of JavaScript object prototypes. The flaw enables privilege escalation, data manipulation, or DoS by polluting base objects. No vendor response was received despite early disclosure.

DailyCVE Form

Platform: DocArray
Version: ≤0.40.1
Vulnerability: Prototype Pollution
Severity: Critical
Date: 06/03/2025

Prediction: Patch by Q3 2025

What Undercode Say:

Exploitation:

import requests
payload = {"<strong>proto</strong>": {"isAdmin": True}}
requests.post("http://target/docarray/api", json=payload)

Detection:

grep -r "<strong>getitem</strong>" /path/to/docarray/ | grep "torch_dataset"

Mitigation:

1. Immediate Workaround:

location /docarray/ {
deny all;
}

2. Validation Patch:

function sanitizeInput(obj) {
if (obj.hasOwnProperty('<strong>proto</strong>')) {
delete obj.<strong>proto</strong>;
}
}

Analytics:

  • Exploitability: High (Remote/Low Complexity)
  • Affected Systems: All DocArray-based ML pipelines
  • Attack Surface: Web API endpoints

Post-Exploit Commands:

Check pollution success
print({}.isAdmin) Returns True if exploited

Permanent Fix:

Upgrade to DocArray ≥0.40.2 (post-patch). Monitor:

pip list | grep docarray

Network Protection:

iptables -A INPUT -p tcp --dport 80 -m string --string "proto" --algo bm -j DROP

Log Analysis:

cat /var/log/nginx/access.log | grep -E "POST.docarray"

Sources:

Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top