Skip to content
Heist/ feed
Back to feed
Critical

vLLM leaks a heap address when PIL throws an error

Type: advisorySources: OSV

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 source

Published 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"
}