vLLM leaks a heap address when PIL throws an error
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-22778
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 08:30 UTC · Revision 1
Source evidence
vLLM leaks a heap address when PIL throws an error
core-osv · Original sourcePublished 2 Feb 2026, 21:09 UTC
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.
osv:CVE-2026-22778
Complete source record
{
"id": "ded9739fd0e3662033938c65c24bac6741dd6815661d8df4a20d520d5cdad82b",
"url": "https://osv.dev/vulnerability/CVE-2026-22778",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "vLLM leaks a heap address when PIL throws an error",
"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.",
"evidence": "osv:CVE-2026-22778",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-22778",
"aliases": [
"CVE-2026-22778",
"GHSA-4r2x-xpjr-7cvv",
"PYSEC-2026-565"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/vllm-project/vllm",
"type": "GIT",
"events": [
{
"introduced": "296c6572dd1f76b31b93be19e550790afcfb8843"
},
{
"fixed": "d7de043d55d1dd629554467e23874097e1c48993"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0.8.3"
},
{
"fixed": "0.14.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "d7de043d55d1dd629554467e23874097e1c48993"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v0.14.1"
},
{
"cpe": "cpe:2.3:a:vllm:vllm:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0.8.3"
},
{
"fixed": "0.14.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22778.json"
}
}
],
"modified": "2026-10-28T02:30:27.248614532Z",
"provider": "osv",
"references": [
"https://github.com/vllm-project/vllm/releases/tag/v0.14.1",
"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-22778.json",
"https://access.redhat.com/errata/RHSA-2026:19712",
"https://access.redhat.com/errata/RHSA-2026:30087",
"https://access.redhat.com/errata/RHSA-2026:30088",
"https://access.redhat.com/errata/RHSA-2026:30089",
"https://access.redhat.com/errata/RHSA-2026:3461",
"https://access.redhat.com/errata/RHSA-2026:3462",
"https://access.redhat.com/errata/RHSA-2026:3713",
"https://access.redhat.com/errata/RHSA-2026:3782",
"https://access.redhat.com/security/cve/CVE-2026-22778",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22778.json",
"https://github.com/vllm-project/vllm/security/advisories/GHSA-4r2x-xpjr-7cvv",
"https://nvd.nist.gov/vuln/detail/CVE-2026-22778",
"https://bugzilla.redhat.com/show_bug.cgi?id=2436113",
"https://github.com/vllm-project/vllm/pull/31987",
"https://github.com/vllm-project/vllm/pull/32319"
],
"provider_metadata": {
"cwe_ids": [
"CWE-532"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22778.json"
}
},
"related_cves": [
{
"value": "CVE-2026-22778",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493834,
"published_at": "2026-02-02T21:09:53.265+00:00"
}