CVE-2024-11041

9.8 CRITICAL

📋 TL;DR

CVE-2024-11041 is a critical remote code execution vulnerability in vLLM v0.6.2 where the MessageQueue.dequeue() function uses insecure pickle.loads() to deserialize network data. Attackers can send malicious payloads to execute arbitrary code on vulnerable systems. Anyone running vLLM v0.6.2 with MessageQueue exposed is affected.

💻 Affected Systems

Products:
  • vllm-project vllm
Versions: v0.6.2
Operating Systems: All operating systems running vLLM
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists when MessageQueue functionality is used. Systems not using MessageQueue may not be vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with attacker gaining full control over the victim machine, data exfiltration, and lateral movement within the network.

🟠

Likely Case

Remote code execution leading to service disruption, data theft, and potential cryptocurrency mining or ransomware deployment.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent unauthorized access to the MessageQueue interface.

🌐 Internet-Facing: HIGH - Directly exploitable over network without authentication if MessageQueue is exposed.
🏢 Internal Only: HIGH - Even internally, any compromised system could exploit this to gain privileged access.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploit requires network access to MessageQueue endpoint. The pickle deserialization vulnerability is well-understood and easily weaponized.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.6.3 or later

Vendor Advisory: https://huntr.com/bounties/00136195-11e0-4ad0-98d5-72db066e867f

Restart Required: Yes

Instructions:

1. Stop vLLM service. 2. Upgrade to v0.6.3 or later using pip: 'pip install vllm>=0.6.3'. 3. Restart vLLM service.

🔧 Temporary Workarounds

Network Access Restriction

linux

Restrict network access to MessageQueue endpoints using firewall rules

iptables -A INPUT -p tcp --dport [MESSAGEQUEUE_PORT] -j DROP

Disable MessageQueue

all

Disable MessageQueue functionality if not required

Modify vLLM configuration to disable MessageQueue or remove related code

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate vLLM instances from untrusted networks
  • Deploy application-level firewalls or WAFs to monitor and block suspicious pickle payloads

🔍 How to Verify

Check if Vulnerable:

Check vLLM version: 'pip show vllm' and verify if version is v0.6.2

Check Version:

pip show vllm | grep Version

Verify Fix Applied:

Confirm version is v0.6.3 or later: 'pip show vllm | grep Version'

📡 Detection & Monitoring

Log Indicators:

  • Unusual pickle deserialization errors
  • Suspicious network connections to MessageQueue ports
  • Unexpected process execution from vLLM context

Network Indicators:

  • Pickle serialized data sent to MessageQueue ports
  • Unusual outbound connections from vLLM host

SIEM Query:

source="vllm.log" AND ("pickle.loads" OR "MessageQueue" OR "deserialization")

🔗 References

📤 Share & Export