CVE-2023-38975
📋 TL;DR
A buffer overflow vulnerability in Qdrant v1.3.2 allows remote attackers to cause denial of service by sending specially crafted requests to the chunked_vectors.rs component. This affects anyone running vulnerable Qdrant instances, particularly those exposed to untrusted networks.
💻 Affected Systems
- Qdrant
📦 What is this software?
Qdrant by Qdrant
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution leading to complete system compromise if the buffer overflow can be leveraged for arbitrary code execution.
Likely Case
Denial of service causing Qdrant service crashes and unavailability of vector search functionality.
If Mitigated
Limited impact with proper network segmentation and input validation controls in place.
🎯 Exploit Status
The vulnerability requires sending specially crafted requests but does not require authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: v1.3.3 or later
Vendor Advisory: https://github.com/qdrant/qdrant/issues/2268
Restart Required: Yes
Instructions:
1. Stop Qdrant service. 2. Update to v1.3.3 or later using package manager or direct download. 3. Restart Qdrant service.
🔧 Temporary Workarounds
Network Segmentation
linuxRestrict access to Qdrant service to trusted networks only
iptables -A INPUT -p tcp --dport 6333 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 6333 -j DROP
🧯 If You Can't Patch
- Implement strict network access controls to limit Qdrant exposure
- Deploy web application firewall with buffer overflow protection rules
🔍 How to Verify
Check if Vulnerable:
Check Qdrant version: qdrant --version or examine service logs for version information
Check Version:
qdrant --version
Verify Fix Applied:
Confirm version is v1.3.3 or later and test service functionality
📡 Detection & Monitoring
Log Indicators:
- Service crashes
- Memory allocation errors
- Unexpected termination of Qdrant process
Network Indicators:
- Unusual large payloads to Qdrant API endpoints
- Multiple connection attempts to port 6333
SIEM Query:
source="qdrant.log" AND ("segmentation fault" OR "buffer overflow" OR "panic")