| Título | vLLM Project (vllm-project) vLLM v0.26.0 Denial of Service |
|---|
| Descripción | vLLM's experimental Rust frontend terminates the entire server process when it loads a tiktoken vocabulary file that assigns the same rank to two tokens.
TiktokenTokenizer::new() -- the constructor used on the production model-load path (rust/src/text/src/backend/hf/mod.rs:27) -- first attempts to load the vocabulary with the `riptoken` backend. A duplicate rank makes riptoken return Err, so new() falls back to `tiktoken-rs` (rust/src/tokenizer/src/tiktoken.rs:274). That backend asserts on the resulting encoder/decoder length mismatch rather than returning an error, panicking at tiktoken-rs-0.9.1/src/patched_tiktoken.rs:33.
Because the workspace sets `panic = "abort"` in its release profile, the panic is not recoverable by the caller: the process aborts instead of the load returning Err, which the fallible signature of new() leads callers to expect.
Impact is availability only. There is no memory unsafety -- the panic is a controlled abort -- and no disclosure. The trigger is loading a malformed or hostile tokenizer file, i.e. an operator action when loading an untrusted model, not a network request. |
|---|
| Fuente | ⚠️ https://github.com/vllm-project/vllm/issues/50954 |
|---|
| Usuario | Zyz3366 (UID 97230) |
|---|
| Sumisión | 2026-08-07 18:05 (hace 1 mes) |
|---|
| Moderación | 2026-09-13 11:41 (1 month later) |
|---|
| Estado | Aceptado |
|---|
| Entrada de VulDB | 403267 [vllm-project vLLM hasta 0.29.0 tiktoken vocab File mod.rs TiktokenTokenizer::new denegación de servicio] |
|---|
| Puntos | 20 |
|---|