296,213
Total vulnerabilities in the database
A recent review identified several regular expressions in the vllm codebase that are susceptible to Regular Expression Denial of Service (ReDoS) attacks. These patterns, if fed with crafted or malicious input, may cause severe performance degradation due to catastrophic backtracking.
https://github.com/vllm-project/vllm/blob/2858830c39da0ae153bc1328dbba7680f5fbebe1/vllm/lora/utils.py#L173 Risk Description:
r"\((.*?)\)\$?$"
matches content inside parentheses. If input such as ((((a|)+)+)+)
is passed in, it can cause catastrophic backtracking, leading to a ReDoS vulnerability..*?
(non-greedy match) inside group parentheses can be highly sensitive to input length and nesting complexity.Remediation Suggestions:
https://github.com/vllm-project/vllm/blob/2858830c39da0ae153bc1328dbba7680f5fbebe1/vllm/entrypoints/openai/tool_parsers/phi4mini_tool_parser.py#L52
Risk Description:
r'functools\[(.*?)\]'
uses .*?
to match content inside brackets, together with re.DOTALL
. If the input contains a large number of nested or crafted brackets, it can cause backtracking and ReDoS.Remediation Suggestions:
model_output
.re.finditer()
and enforce a length constraint on each match.https://github.com/vllm-project/vllm/blob/2858830c39da0ae153bc1328dbba7680f5fbebe1/vllm/entrypoints/openai/serving_chat.py#L351
Risk Description:
r'.*"parameters":\s*(.*)'
can trigger backtracking if current_text
is very long and contains repeated structures..*
matching any content is high risk.Remediation Suggestions:
current_text
length..*
to capture large blocks of text; prefer structured parsing when possible.https://github.com/vllm-project/vllm/blob/2858830c39da0ae153bc1328dbba7680f5fbebe1/benchmarks/benchmark_serving_structured_output.py#L650
Risk Description:
r'\{.*\}'
is used to extract JSON inside curly braces. If the actual
string is very long with unbalanced braces, it can cause backtracking, leading to a ReDoS vulnerability.Remediation Suggestions:
actual
.{
and }
or use a robust JSON extraction tool.