| 标题 | vLLM Project (vllm-project) vLLM v0.26.0 Denial of Service |
|---|
| 描述 | 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. |
|---|
| 来源 | ⚠️ https://github.com/vllm-project/vllm/issues/50954 |
|---|
| 用户 | Zyz3366 (UID 97230) |
|---|
| 提交 | 2026-08-07 18時05分 (1 月前) |
|---|
| 管理 | 2026-09-13 11時41分 (1 month later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 403267 [vllm-project vLLM 直到 0.29.0 tiktoken vocab File mod.rs TiktokenTokenizer::new 拒绝服务] |
|---|
| 积分 | 20 |
|---|