CVE-2026-22778 in the critical feed json
vLLM leaks a heap address when PIL throws an error
published 2026-02-02 9 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-5277 , GHSA-4r2x-xpjr-7cvv , PYSEC-2026-565
- cvss
- 9.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 18.3%
- EPSS 18.3% chance of exploitation in 30 days, percentile 97%
- public exploits
- 1
- Metasploit, plus a Nuclei check
Summary
vLLM is an inference and serving engine for large language models (LLMs). From 0.8.3 to before 0.14.1, when an invalid image is sent to vLLM's multimodal endpoint, PIL throws an error. vLLM returns this error to the client, leaking a heap address. With this leak, we reduce ASLR from 4 billion guesses to ~8 guesses. This vulnerability can be chained a heap overflow with JPEG2000 decoder in OpenCV/FFmpeg to achieve remote code execution. This vulnerability is fixed in 0.14.1.
Patch / fix
- pypi vllm 0.14.1
- Red Hat Red Hat AI Inference Server 3.2 1772160593, 1772160625
- Red Hat Red Hat AI Inference Server 3.3 1782352847, 1782352919, 1782353093
- Red Hat Red Hat OpenShift AI 2.25 1772093237, 1772093276, 1772093278, 1772093436
- Red Hat Red Hat OpenShift AI 3.3 1770956034, 1778264363
- github.com/vllm-project/vllm#31987 pull request
- github.com/vllm-project/vllm#32319 pull request
- github.com/vllm-project/vllm/releases/tag/v0.14.1 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-22778 updated cvss 9.8
vLLM: vLLM: Remote code execution via invalid image processing in the multimodal endpoint.
-
Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-aws-cuda-rhel9, rhelai3/bootc-gcp-cuda-rhel9, rhelai3/bootc-azure-cuda-rhel9affected: workaround, no fix planned “Out of support scope”
-
Red Hat AI Inference Server 3.2 rhaiis 1772160593, rhaiis 1772160625fixed: vendor fix RHSA-2026:3461
-
Red Hat AI Inference Server 3.3 rhaiis/vllm-cuda-rhel9 1782352847, rhaiis/vllm-rocm-rhel9 1782353093, rhaiis/vllm-spyre-rhel9 1782352919fixed: vendor fix RHSA-2026:30089
-
Red Hat OpenShift AI 2.25 rhoai 1772093237, rhoai 1772093276, rhoai 1772093278, rhoai 1772093436fixed: vendor fix RHSA-2026:3782
-
Red Hat OpenShift AI 3.3 rhoai 1770956034, rhoai 1778264363fixed: vendor fix RHSA-2026:19712
-
Red Hat AI Inference Server rhaiis/vllm-tpu-rhel9not affected: vulnerable code not present
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-kserve-agent-rhel9, rhoai/odh-kserve-router-rhel9, rhoai/odh-kserve-controller-rhel9, rhoai/odh-kserve-storage-initializer-rhel9not affected: vulnerable code not in execute path
-
Red Hat OpenShift AI 2.25 rhoai 1772093250, rhoai 1772093252, rhoai 1772093260, rhoai 1772093266, rhoai 1772093272, rhoai 1772093273, +60 more Red Hat OpenShift AI 3.3 rhoai 1769162595, rhoai 1769436305, rhoai 1769519975, rhoai 1770277795, rhoai 1770735854, rhoai 1770754585, +152 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Timeline
- First public exploit (Metasploit auxiliary/scanner/http/vllm_multimodal_info_leak)
- Published
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- 9 mo ago
Exploit prediction
18.29% chance of exploitation in the next 30 days, higher than 97% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- Metasploit auxiliary/scanner/http/vllm_multimodal_info_leak vLLM Multimodal Heap-Address Information Leak Scanner metasploit auxiliary, normal rank, 2026-02-02
- Nuclei template vLLM 0.8.3 - 0.14.0 - Information Disclosure nuclei detection template
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CISA ADP | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| OSV | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | vllm | >=0.8.3, <0.14.1 |
0.14.1 |
Affected products
- vllm-project vllm
- Red Hat Red Hat AI Inference Server 3.2
- Red Hat Red Hat AI Inference Server 3.3
- Red Hat Red Hat OpenShift AI 2.25
- Red Hat Red Hat OpenShift AI 3.3
- Red Hat Red Hat AI Inference Server
- Red Hat Red Hat Enterprise Linux AI (RHEL AI) 3
- Red Hat Red Hat OpenShift AI (RHOAI)
Classification
References
-
github.com
/vllm-project/vllm/pull/31987
web, issue-tracking, patch
-
github.com
/vllm-project/vllm/pull/32319
web, issue-tracking, patch
-
access.redhat.com
/errata/RHSA-2026:3461
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:3462
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:30089
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:30088
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:30087
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:3782
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:19712
vendor-advisory, web
-
access.redhat.com
/errata/RHSA-2026:3713
vendor-advisory, web
-
github.com
/vllm-project/vllm/security/advisories/GHSA-4r2x-xpjr-7cvv
web, vendor-advisory
-
github.com
/vllm-project/vllm/releases/tag/v0.14.1
web, release-notes
-
access.redhat.com
/security/cve/CVE-2026-22778
vdb-entry, web
-
bugzilla.redhat.com
/show_bug.cgi?id=2436113
issue-tracking, web
-
security.access.redhat.com
/data/csaf/v2/vex/2026/cve-2026-22778.json
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-22778
advisory
-
pypi.org
/project/vllm
web, package
-
github.com
/vllm-project/vllm
package
-
github.com
/pypa/advisory-database/tree/main/vulns/vllm/PYSEC-2026-565.yaml
web
-
github.com
/advisories/GHSA-4r2x-xpjr-7cvv
advisory
Sources
- CVE List CVE-2026-22778
- GitHub Advisory GHSA-4r2x-xpjr-7cvv
- NVD CVE-2026-22778
- OSV PYSEC-2026-565
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.