Browse / CVEs / CVE-2026-22778
CVE-2026-22778· vllm / vllm· CWE-209
vLLM 0.8.3 - 0.14.0 - Information Disclosure
criticalseverity
9.8CVSS score
18.3%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it
vLLM 0.8.3 to - 0.14.1 contains an information disclosure caused by leaking a heap address in error messages from the multimodal endpoint when processing invalid images, letting remote attackers reduce ASLR entropy, exploit requires sending invalid images.
Impact
Remote attackers can leak heap addresses, significantly reducing ASLR effectiveness and enabling further exploitation like remote code execution.
Fix
Upgrade to version 0.14.1 or later.
How to confirm it
Send: GET /v1/models
Positive when: status_code == 200 and contains(body, "\"id\":")
Send: POST /v1/chat/completions
Positive when: status_code == 400 and contains(body, "_io.BytesIO object at 0x")Run it with nuclei: nuclei -id CVE-2026-22778 -u <target>
The full check
id: CVE-2026-22778
info:
name: vLLM 0.8.3 - 0.14.0 - Information Disclosure
author: kenlacroix
severity: critical
description: |
vLLM 0.8.3 to - 0.14.1 contains an information disclosure caused by leaking a heap address in error messages from the multimodal endpoint when processing invalid images, letting remote attackers reduce ASLR entropy, exploit requires sending invalid images.
impact: |
Remote attackers can leak heap addresses, significantly reducing ASLR effectiveness and enabling further exploitation like remote code execution.
remediation: |
Upgrade to version 0.14.1 or later.
reference:
- https://github.com/vllm-project/vllm/security/advisories/GHSA-4r2x-xpjr-7cvv
- https://orca.security/resources/blog/cve-2026-22778-vllm-rce-vulnerability/
- https://nvd.nist.gov/vuln/detail/CVE-2026-22778
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-22778
epss-score: 0.18287
epss-percentile: 0.97244
cwe-id: CWE-209
metadata:
verified: true
max-request: 2
vendor: vllm
product: vllm
shodan-query: http.html:"/v1/models" http.html:"vllm"
tags: cve,cve2026,vllm,llm,ai,disclosure,exposure,intrusive
flow: http(1) && http(2)
http:
- raw:
- |
GET /v1/models HTTP/1.1
Host: {{Hostname}}
Accept: application/json
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "\"id\":")'
condition: and
internal: true
extractors:
- type: regex
name: model
part: body
internal: true
group: 1
regex:
- '"id"\s*:\s*"([^"]+)"'
- raw:
- |
POST /v1/chat/completions HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"model":"{{model}}","messages":[{"role":"user","content":[{"type":"text","text":"{{randstr}}"},{"type":"image_url","image_url":{"url":"data:image/png;base64,bm90YW5pbWFnZQ=="}}]}],"max_tokens":1}
matchers:
- type: dsl
dsl:
- 'status_code == 400'
- 'contains(body, "_io.BytesIO object at 0x")'
condition: andReferences
- https://github.com/vllm-project/vllm/security/advisories/GHSA-4r2x-xpjr-7cvv
- https://orca.security/resources/blog/cve-2026-22778-vllm-rce-vulnerability/
- https://nvd.nist.gov/vuln/detail/CVE-2026-22778
Use this check only on systems you are authorised to test. Where the data comes from