Skip to content
vLLMGHSA-4qjh-9fv9-r85r

Potential Timing Side-Channel Vulnerability in vLLM’s Chunk-Based Prefix Caching

Low2.6CVE-2025-46570 · Published May 28, 2025 · updated Aug 7, 2026

This issue arises from the prefix caching mechanism, which may expose the system to a timing side-channel attack. ## Description When a new prompt is processed, if the PageAttention mechanism finds a matching prefix chunk, the prefill process speeds up, which is reflected in the TTFT (Time to First Token). Our tests revealed that the timing differences caused by matching chunks are significant enough to be recognized and exploited. For instance, if the victim has submitted a sensitive prompt or if a valuable system prompt has been cached, an attacker sharing the same backend could attempt to guess the victim's input. By measuring the TTFT based on prefix matches, the attacker could verify if their guess is correct, leading to potential leakage of private information. Unlike token-by-token sharing mechanisms, vLLM’s chunk-based approach (PageAttention) processes tokens in larger units (chunks). In our tests, with chunk_size=2, the timing differences became noticeable enough to allow attackers to infer whether portions of their input match the victim's prompt at the chunk level. ## Environment - GPU: NVIDIA A100 (40G) - CUDA: 11.8 - PyTorch: 2.3.1 - OS: Ubuntu 18.04 - vLLM: v0.5...

GitHub advisory

Affected versions

PackageAffectedFixed in
vllm
PyPI
< 0.9.00.9.0
Details and references

This issue arises from the prefix caching mechanism, which may expose the system to a timing side-channel attack. ## Description When a new prompt is processed, if the PageAttention mechanism finds a matching prefix chunk, the prefill process speeds up, which is reflected in the TTFT (Time to First Token). Our tests revealed that the timing differences caused by matching chunks are significant enough to be recognized and exploited. For instance, if the victim has submitted a sensitive prompt or if a valuable system prompt has been cached, an attacker sharing the same backend could attempt to guess the victim's input. By measuring the TTFT based on prefix matches, the attacker could verify if their guess is correct, leading to potential leakage of private information. Unlike token-by-token sharing mechanisms, vLLM’s chunk-based approach (PageAttention) processes tokens in larger units (chunks). In our tests, with chunk_size=2, the timing differences became noticeable enough to allow attackers to infer whether portions of their input match the victim's prompt at the chunk level. ## Environment - GPU: NVIDIA A100 (40G) - CUDA: 11.8 - PyTorch: 2.3.1 - OS: Ubuntu 18.04 - vLLM: v0.5.1 Configuration: We launched vLLM using the default settings and adjusted chunk_size=2 to evaluate the TTFT. ## Leakage We conducted our tests using LLaMA2-70B-GPTQ on a single device. We analyzed the timing differences when prompts shared prefixes of 2 chunks, and plotted the corresponding ROC curves. Our results suggest that timing differences can be reliably used to distinguish prefix matches, demonstrating a potential side-channel vulnerability. <img src="https://github.com/user-attachments/assets/db3491e9-02b7-424c-9b6d-56f553b39f2f" alt="roc_curves_combined_block_2" width="400"/> ## Results In our experiment, we analyzed the response time differences between cache hits and misses in vLLM's PageAttention mechanism. Using ROC curve analysis to assess the distinguishability of these timing differences, we observed the following results: - With a 1-token prefix, the ROC curve yielded an AUC value of 0.571, indicating that even with a short prefix, an attacker can reasonably distinguish between cache hits and misses based on response times. - When the prefix length increases to 8 tokens, the AUC value rises significantly to 0.99, showing that the attacker can almost perfectly identify cache hits with a longer prefix. ## Fixes * https://github.com/vllm-project/vllm/pull/17045

CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N
Severity from
GitHub (reviewed advisory)
Weakness
CWE-208
Also known as
CVE-2025-46570, PYSEC-2025-53

More vLLM advisories

All vLLM
Advisory
vLLM Tool Schema allows DoS via Malformed pattern and type Fields
Medium6.5May 28, 2025
vLLM allows clients to crash the openai server with invalid regex
Medium6.5May 28, 2025
vLLM DOS: Remotely kill vllm over http with invalid JSON schema
Medium6.5May 28, 2025
vLLM has a Weakness in MultiModalHasher Image Hashing Implementation
Medium4.2May 28, 2025
vLLM vulnerable to Regular Expression Denial of Service
Medium4.3May 28, 2025
vLLM: denial of service
Medium6.5May 28, 2025

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.