---
id: "CVE-2026-115912"
kind: "vulnerability"
aliases: ["CVE-2026-115912"]
title: "vLLM: forged shared-memory fields let an authenticated caller run Python code"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "ai-tooling"
products: []
ecosystems: []
tags: ["ai-tooling", "llm-inference", "multimodal", "python", "self-hosted", "vllm"]
not_affected_if: ["no-multimodal-caching", "single-process", "version-0.32.0-or-later"]
published_at: "2026-10-26T17:17:18+00:00"
first_seen_at: "2026-10-26T17:31:22+00:00"
updated_at: "2026-10-26T17:33:07+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115912", "first_seen_at": "2026-10-26T17:31:22+00:00"}]
---

# vLLM: forged shared-memory fields let an authenticated caller run Python code

vLLM, an LLM inference and serving engine, trusts attacker-supplied shared-memory address and ID values in multimodal requests in scale-out deployments with shared-memory caching enabled. An authenticated caller can make workers unpickle attacker-chosen bytes, which runs arbitrary Python even when insecure serialization is disabled.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version with `pip show vllm` and treat anything below `0.32.0` as exposed.
- Check whether the deployment runs scale-out workers with shared-memory multimodal caching enabled; the sources do not name the exact flag, so look for it in the serving configuration.

## Fix

- Upgrade vLLM to `0.32.0` or later.
- Until upgraded, restrict who can send requests to the serving endpoint and disable shared-memory multimodal caching if the configuration allows it.

## Timeline

- 2026-10-26T17:31:22+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-115912

## From the sources

vLLM is an inference and serving engine for large language models. Prior to 0.32.0, an authenticated caller can place forged shared-memory address and monotonic_id values in public multimodal features.kwargs_data. In scale-out deployments with shared-memory multimodal caching enabled, workers trust those values and pass attacker-selected bytes to pickle.loads(), allowing arbitrary Python execution even when insecure serialization is disabled. This issue is fixed in version 0.32.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
