CVE-2026-26190
📋 TL;DR
This critical vulnerability in Milvus vector database allows unauthenticated attackers to bypass authentication and execute arbitrary operations. Attackers can manipulate data, access credentials, and evaluate expressions via exposed endpoints. All Milvus deployments prior to versions 2.5.27 and 2.6.10 with default configurations are affected.
💻 Affected Systems
- Milvus
📦 What is this software?
Milvus by Milvus
Milvus by Milvus
⚠️ Risk & Real-World Impact
Worst Case
Complete compromise of the Milvus database including data theft, data destruction, credential exfiltration, and potential lateral movement to connected systems.
Likely Case
Unauthenticated attackers accessing sensitive data, manipulating vector embeddings, and potentially disrupting AI/ML applications relying on Milvus.
If Mitigated
Limited impact with proper network segmentation and authentication controls, though the vulnerability still exists in the software.
🎯 Exploit Status
Exploitation requires only network access to port 9091 and knowledge of default authentication token derivation.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2.5.27 or 2.6.10
Vendor Advisory: https://github.com/milvus-io/milvus/security/advisories/GHSA-7ppg-37fh-vcr6
Restart Required: Yes
Instructions:
1. Backup your Milvus data and configuration. 2. Stop all Milvus services. 3. Upgrade to Milvus 2.5.27 or 2.6.10 using your package manager or from GitHub releases. 4. Restart Milvus services. 5. Verify the upgrade was successful.
🔧 Temporary Workarounds
Block port 9091 at firewall
linuxPrevent external access to the vulnerable port
iptables -A INPUT -p tcp --dport 9091 -j DROP
ufw deny 9091
Change etcd.rootPath configuration
allModify the default etcd.rootPath to break predictable token generation
Edit milvus.yaml: etcd.rootPath: "custom-unique-path"
🧯 If You Can't Patch
- Implement strict network access controls to limit access to port 9091 to trusted IPs only
- Deploy Milvus behind a reverse proxy with authentication and disable direct access to port 9091
🔍 How to Verify
Check if Vulnerable:
Check if port 9091 is open and accessible, and test if unauthenticated requests to /api/v1/ or /expr endpoints succeed
Check Version:
milvus version
Verify Fix Applied:
After upgrade, verify port 9091 requires authentication and test that unauthenticated API access is blocked
📡 Detection & Monitoring
Log Indicators:
- Unauthenticated access attempts to /api/v1/* endpoints
- Failed authentication on port 9091
- Unexpected expression evaluation requests
Network Indicators:
- Unusual traffic to TCP port 9091 from unauthorized sources
- API calls to Milvus without authentication headers
SIEM Query:
source_port:9091 AND (uri_path:"/api/v1/*" OR uri_path:"/expr") AND NOT auth_token:*