已关闭
[Bug]: /v1/completions 接口可接收畸形多模态特殊token,存在拒绝服务风险 #536
muziyuhui666创建于  4月21日关闭于  5月25日
muziyuhui666
4月21日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

⚠️ 安全信息提醒:请仔细检查提供的文本内容,确保其不包含敏感数据信息,包括但不限于:

  • API 令牌或密钥
  • 密码或身份验证凭证
  • 私有网址或接口地址
  • 个人或机密数据
  • ...

在分享配置信息或代码示例时,请将敏感信息脱敏处理,或使用 <TOKEN> 等占位符替代原有内容。

环境信息

  • 操作系统:Ubuntu 22.04 LTS
  • 昇腾硬件信息:Atlas A2
  • CANN软件版本:CANN 8.5.1.B080
  • 安装的对应软件版本:MindIE 26.0.0.B118

🐛 问题描述

问题描述

在使用 mindie_llm 服务化部署 qwen2.5-vl 模型时,向 /v1/completions 发送包含恶意多模态特殊 token 的请求,会导致服务异常,存在拒绝服务(DoS)风险。

同时,在问题定位过程中发现,tokenizer 多模态判定如果依赖不稳定的初始化路径,可能在 tokenizer worker 启动阶段引入子进程崩溃风险。

影响范围

  • 接口:/v1/completions
  • 模型类型:多模态模型
  • 已复现模型:qwen2.5-vl
  • 影响:异常请求可能导致服务空回复、报错,严重时导致服务进程退出

复现步骤

  1. 拉起 qwen2.5-vl 服务。
  2. 发送正常多模态请求到 /v1/chat/completions,服务可正常返回结果。
  3. 发送如下恶意请求到 /v1/completions
curl -X POST \
  -d '{
    "model": "qwen2_5_vl",
    "prompt": "<|vision_start|><|video_pad|><|vision_end|>",
    "do_sample": false,
    "max_tokens": 256
  }' \
  127.0.0.21:2025/v1/completions
  1. 观察服务端日志与服务状态。

期望结果

  • 对畸形多模态特殊 token 输入进行显式校验并拒绝,返回明确的 4xx 错误。
  • 服务端不因异常输入而退出。
  • 正常文本请求与正常多模态请求不受影响。

实际结果

  • 恶意请求可进入不安全处理路径。
  • 历史复现中服务端出现过如下异常现象:
    • 请求端收到空回复(Empty reply from server
    • 服务端出现位置编码相关异常(如 IndexError
    • 服务进程退出,导致拒绝服务
  • 在进一步定位过程中,某些 tokenizer 多模态判定实现路径还可能触发 tokenizer worker 子进程 Segmentation fault / Aborted

根因分析

初步分析认为问题包含两个方面:

  1. /v1/completionsprompt 中多模态保留特殊 token 缺少足够的入口约束,恶意构造的特殊 token 可以进入后续推理链路。
  2. 多模态能力判定如果依赖不稳定的初始化路径,可能在 tokenizer 子进程启动阶段引入 native 层崩溃风险。

建议修复方向

  1. /v1/completions 入口增加对畸形多模态特殊 token 的校验逻辑,异常输入直接返回 4xx。
  2. 使用稳定的 router 层能力标记(例如 is_multimodal)驱动 tokenizer 特殊 token 处理逻辑,避免访问存在副作用的路径。
  3. 增加回归测试,覆盖以下场景:
    • 恶意 token 注入请求不会导致服务退出
    • 正常 /v1/chat/completions 多模态请求可正常返回
    • 正常文本请求可正常返回

环境信息

  • 模型:qwen2.5-vl
  • 部署方式:mindie_llm 服务化部署
  • 复现接口:/v1/completions

日志现象

历史复现中可见如下现象:

  • IndexError
  • Empty reply from server
  • Segmentation fault
  • Aborted

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
ascend-robotascend-robot成员
4月21日 添加了label:bug
CXY-Katrina
CXY-Katrina成员
4月21日 评论:

收到反馈,感谢!我会尽快查看并回复进展。

likedislike
Mmuziyuhui666
4月23日 关联了pull request:[Bugfix] 修复多模态tokenizer特殊token拆分逻辑,避免恶意token导致服务异常
吴铭泾吴铭泾成员
5月25日 关闭了 issue
吴铭泾吴铭泾成员
5月25日 重新打开了 issue
吴铭泾吴铭泾成员
5月25日 issue状态由 TODO 改变为 DONE
吴铭泾吴铭泾成员
5月25日 关闭了 issue