vLLM: DoS via unbounded chat_template Jinja2 rendering exhausts the renderer thread pool
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
Description
vLLM is an inference and serving engine for large language models. From 0.19.0 until 0.32.0, authenticated callers can supply a request chat template when no server-side --chat-template is configured, or a malicious model repository can provide a template that is compiled and rendered by tokenizer.apply_chat_template() without a wall-clock timeout, output-size limit, or iteration bound. Rendering runs in a ThreadPoolExecutor with one worker by default, so a nonterminating render can block /v1/responses and other chat-template users after the request ends, while an output-expanding render can exhaust server memory. Harmony models are not affected because they do not use this Jinja path. This issue is fixed in version 0.32.0.
Text from CVE List
Affected versions 1
- vllmaffected: >= 0.19.0, < 0.32.0CVE List
References 4
- github.com/vllm-project/vllm/commit/cff08b461e086523cee8bba5bd3c66d302625134Fixvia CVE List
- github.com/vllm-project/vllm/releases/tag/v0.32.0Fixvia CVE List
- github.com/vllm-project/vllm/security/advisories/GHSA-542m-9234-8gvfAdvisoryvia CVE List
- github.com/vllm-project/vllm/pull/50300Referencevia CVE List