CVE-2026-105759 is a Medium severity denial of service in vLLM's Rust frontend. Before 0.30.0, the metrics middleware records the raw HTTP method as a Prometheus label, so an unauthenticated client sending unique method names makes memory and the metrics response grow until the service fails. Upgrade to 0.30.0.
What's affected
- Product: vLLM, the LLM inference and serving engine, in its Rust frontend.
- Affected: versions before 0.30.0, per the record and the project advisory.
- Fixed: 0.30.0.
- Condition: the Rust frontend is in use. The advisory says it is enabled with VLLM_USE_RUST_FRONTEND set to 1, or by running the vllm-rs binary directly.
- Score: CVSS 5.9, Medium. The project advisory also rates it Moderate.
How to check if you're exposed
Find vLLM deployments and then find out whether they use the Rust frontend.
pip show vllm
env | grep VLLM_USE_RUST_FRONTEND
ps aux | grep vllm-rs
curl -s localhost:8000/metrics | wc -c
The last command measures the size of the metrics response on a local server. If the size is much larger than it was after startup, label growth may be happening, although normal traffic also adds some series. Compare against a baseline from your monitoring system.
Check container definitions and Helm values for the environment variable. Deployments on the standard Python frontend are outside the advisory text.
Safeguard's free in-browser dependency scan at gold.safeguard.sh/scan reads a manifest or lockfile and shows which packages carry known CVEs, including this one. Nothing is installed and nothing leaves your browser session beyond the scan itself.
What to do now
- Upgrade vLLM to 0.30.0 or later on every deployment that uses the Rust frontend.
- Do not expose the inference endpoints directly to the internet. Place them behind an authenticated gateway that rejects unusual HTTP methods.
- Restrict who can scrape the metrics endpoint to your monitoring system only.
- Set a memory limit and a restart policy on the serving process and alert on memory growth.
- Watch the number of metric series in Prometheus for sudden increases.
- Add the serving stack to continuous monitoring so new advisories are noticed quickly.
Why it matters
The record lists CWE-400, uncontrolled resource consumption. Prometheus labels create a new time series for every distinct value, and the server never forgets a series once created. Using an attacker controlled string as a label value means the attacker decides how much memory the process holds.
The advisory explains that the HTTP libraries accept arbitrary tokens as methods. The router answers with a 405 error, but the request still passes through the metrics middleware first. Memory grows until the process is killed, and each scrape of the metrics endpoint becomes bigger and slower, which can also hurt your monitoring path.
The fix maps methods to a small allowlist and collapses everything else to a single label, per the pull request. High cardinality labels are a well known trap in metrics code. Review any middleware in your own services that labels by user supplied values. The record does not list this CVE as exploited in the wild.
Try it yourself
Click through it at your own pace, or open it full screen.
Quick check
Does this affect the Python frontend?
The advisory describes the Rust frontend only, enabled by an environment variable or the vllm-rs binary.
What is the fix?
The pull request maps HTTP methods to a fixed allowlist and puts everything else under a single other label.
Sources
Last reviewed: 18 October 2026.