qianlijaingshan/milvus-auth-audit
PoC files
2 filesFile viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
Analysis
Technical assessment
A Python script that checks a Milvus instance for three authentication vulnerabilities (CVE-2025-64513, CVE-2026-26190, and an unauthenticated internal port) by sending gRPC and HTTP requests and reporting whether the target is vulnerable. It does not perform any post-exploitation actions.
Backdoor review
No backdoor observed in reviewed code
The repository contains a Python security audit script and its README. The script checks for three known Milvus authentication vulnerabilities (CVE-2025-64513, CVE-2026-26190, and an unauthenticated internal port) by sending crafted requests to a target Milvus instance. No backdoor, trojan, or deceptive payload targeting the person running the PoC was observed. The script's behavior is limited to the described vulnerability checks and does not perform any concealed or unrelated harmful actions.
Classification basis and observed behavior
Classification basis
The script only sends detection probes (gRPC ListDatabases with and without the sourceid header, HTTP GET to /expr, and optional gRPC to the internal port) and reports whether the target is vulnerable. It does not perform any data modification, exfiltration, or administrative actions, which makes it a scanner rather than an exploit.
milvus-auth-audit.py:3-9milvus-auth-audit.py:78-113milvus-auth-audit.py:116-126milvus-auth-audit.py:129-148Requirements
- Network access to the target Milvus proxy gRPC port (default 19530) and management port (default 9091).
milvus-auth-audit.py:15 - Python dependencies grpcio and protobuf, plus compiled proto stubs in a proto/ subdirectory.
README.md:31-32
Observed behavior
- Sends an unauthenticated gRPC ListDatabases request to determine if authentication is enabled.
milvus-auth-audit.py:55-75 - Sends a gRPC ListDatabases request with a sourceid header containing the base64-encoded internal member credential to test CVE-2025-64513.
milvus-auth-audit.py:78-113 - Sends an HTTP GET request to /expr?code=1%2B1&auth=by-dev on the management port to test CVE-2026-26190.
milvus-auth-audit.py:116-126 - Optionally sends an unauthenticated gRPC ListDatabases request directly to the internal rootcoord port (default 53100) to test for missing authentication.
milvus-auth-audit.py:129-148 - Prints a summary of which checks resulted in HIT, SAFE, or SKIP.
milvus-auth-audit.py:195-205
Behaviors behind the backdoor verdict
Observables
- Credential
- QEBtaWx2dXMtbWVtYmVyQEA=Base64-encoded sourceid payload used to test CVE-2025-64513 authentication bypass.
milvus-auth-audit.py:30 - Credential
- by-devDefault authentication token used to test CVE-2026-26190 /expr endpoint weak token vulnerability.
milvus-auth-audit.py:31 - Network Behavior
- gRPC call to target:19530 with sourceid metadataScript sends a ListDatabases request with a crafted sourceid header to test authentication bypass.
milvus-auth-audit.py:102-103 - Network Behavior
- HTTP GET to target:9091/expr?code=1%2B1&auth=by-devScript sends an HTTP request to the management port to test the /expr endpoint weak token vulnerability.
milvus-auth-audit.py:118-119 - Network Behavior
- gRPC call to target:53100 (internal port)Script connects to the internal rootcoord port to test for unauthenticated access.
milvus-auth-audit.py:137-139
What the analysis did not establish
- The evidence includes only the README and the Python script; the required compiled proto stubs (milvus_pb2_grpc.py, root_coord_pb2_grpc.py, etc.) are not provided, so the script cannot be executed as-is.
- The script's behavior is inferred from source code analysis; no runtime output or network traffic is included in the evidence.
- The review is based solely on the supplied text files (README.md and milvus-auth-audit.py). No binary files were present. The script's behavior when executed with specific arguments or against a live target was not tested; analysis is static only.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.