---
id: CVE-2026-93989
title: >-
  vLLM through 0.29.0 fails to properly validate bad_words token indices against
  the model's generation output width in SamplingParams.update_from_tokenizer()
summary: >-
  vLLM through 0.29.0 fails to properly validate bad_words token indices against
  the model's generation output width in SamplingParams.update_from_tokenizer().
  Attackers can supply out-of-bounds token indices that corrupt logits memory of
  …
severity: low
cvss: 3.1
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N'
cwe:
  - CWE-129
  - CWE-787
vendor: vllm
product: vllm
affected:
  - vllm <= 0.29.0
published: '2026-09-19'
updated: '2026-09-28'
sourceUpdated: '2026-09-28T18:38:31.173'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-93989'
references:
  - url: 'https://github.com/vllm-project/vllm'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/vllm-project/vllm/blob/98dff2a81d747d1dba01a47f939f48c3526d4206/vllm/sampling_params.py#L694-L753
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/vllm-project/vllm/blob/98dff2a81d747d1dba01a47f939f48c3526d4206/vllm/v1/worker/gpu/sample/bad_words.py
    label: disclosure@vulncheck.com
  - url: 'https://github.com/vllm-project/vllm/pull/48824'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/vllm-through-0.29.0-cross-request-logits-corruption-via-bad-words
    label: disclosure@vulncheck.com
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-93989.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-93989'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2538411'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-93989'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-93989'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
  - osv
  - pip
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-22T16:00:35.389361Z'
ingestedAt: '2026-09-19T23:10:34.245Z'
epss: 0.00202
epssPercentile: 0.10058
aliases:
  - PYSEC-2026-4000
ecosystem: pip
patched:
  - vllm 0.30.0
scores:
  nvd: 3.1
  osv: 4.3
---

## Overview

vLLM through 0.29.0 fails to properly validate bad_words token indices against the model's generation output width in SamplingParams.update_from_tokenizer(). Attackers can supply out-of-bounds token indices that corrupt logits memory of concurrent requests, causing different in-flight HTTP requests to return incorrect tokens.

## Affected

- `vllm <= 0.29.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **Red Hat VEX** · Low · affected: Red Hat AI Inference Server, Red Hat Enterprise Linux AI (RHEL AI) 3, Red Hat OpenShift AI (RHOAI) · no fix planned: Red Hat AI Inference Server, Red Hat Enterprise Linux AI (RHEL AI) 3, Red Hat OpenShift AI (RHOAI) · updated 2026-09-28 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-93989.json)

## Package advisory (CVE-2026-93989)

Affected packages:

- `vllm < 0.30.0`

Patched in:

- `vllm 0.30.0`

Source: https://osv.dev/vulnerability/PYSEC-2026-4000
