Prhub

vllm-project/vllm · 标签视图

标签列表

聚合结果

security 相关 PR

2026-09-16
缺陷修复 重要性 7.57 洞察度 7.00

prompt_embeds 不可解析载荷从 500 改判 400,错误理由截断到 200 字符

值得精读,尤其是要把「调用方输入错误 → HTTP 状态码」这条链路做对的工程师。关注三处设计决策:一是 `except Exception` 取代显式异常元组(作者本人主动标注为相对已批准版本的语义放宽,并用 OOM 前置 re-raise 控制半径),这是本次最值得记住的取舍;二是 `_truncated_reason()` 用「截断 + 省略计数」把反射放大压到常量级且不损失调试信息;三是测试通过 patch `torch.load` 注入已知长度理由,把断言从「torch 恰好给出长消息」解耦出来——这套写法可以直接搬到其它依赖第三方错误文本的校验代码上。阅读时可顺手确认你所在部署的 5xx 告警基线是否需要随 400 迁移而调整,并注意 `image_embeds` / `audio_embeds` 路径仍是 500 的不一致。

2026-09-15
基础设施 重要性 5.46 洞察度 5.00

OTel GPU 采样器降权运行,失败则禁用采样

值得精读,但重点不在代码量,而在“权限边界如何失败”的设计:一是 fail-closed 而不是 fail-back-to-root 的选择,二是通过 `stat` 推导 checkout 属主、再用 `setpriv … -- test -w` 做真实写权限探测,三是只给采样器而非整个命令链路降权。建议读者重点关注 `_ci_otel_prepare_gpu_user()` 的校验分支(`case "$1:$2" in`)与 `ci_otel_start()` 中三分支启动逻辑,以及测试如何用 shell stub 精确断言 `--reuid=997 --regid=996 --clear-groups --no-new-privs --` 与 `setpriv` 被调用 2 次(一次探测 + 一次启动)。若要在自己仓库复用该模式,需要额外确认 CI 镜像自带 `setpriv`,并为“采样静默消失”补一条告警。

缺陷修复 重要性 6.86 洞察度 5.00

提交前校验 routed-experts 偏移,避免 EngineCore 崩溃

值得精读(篇幅小、信息密度高)。关注三个设计决策:(a) 校验位置选在 InputProcessor 而非 SamplingParams 或调度器,理由是覆盖 OpenAI 与非 OpenAI 全部生成调用且早于 EngineCore 提交;(b) 采用 '拒绝' 而不是 'clamp',避免把非法请求静默改写为语义不明的合法请求;(c) 闭区间语义——把 offset == prompt_len 视为合法的空切片而非错误,并同步放宽调度器断言。建议读者顺手排查自己代码里是否存在绕过 InputProcessor 直接投递 Request 的路径,以及在 `python -O` 下调度器 assert 失效后的行为。若计划进一步加固,可考虑把下界检查下沉到 `SamplingParams` 校验或让调度器显式抛错替代 assert。

缺陷修复 重要性 6.42 洞察度 4.00

Bench 日志与 PyTorch 元数据脱敏,防止凭据外泄

值得精读,改动虽小但展示了日志脱敏的通用套路:共享纯函数 `redact_sensitive_namespace` 加调用点替换,并刻意把脱敏副本与请求数据路径分离,避免在打印与写入 artifact 的过程中泄露凭据。值得关注的决策:一是用浅拷贝而不是原地修改,保证原参数零副作用;二是 `save_to_pytorch_benchmark_format` 也传入脱敏副本,防止凭据从 stdout 转移到结果文件。建议后续在 `tests/benchmarks/test_serve_cli.py` 中补充正式断言,把 stdout 不含明文 `header` / `api_key`、结果文件不含明文、原始 `args` 不变这三点固化下来,并考虑基于参数命名约定自动识别敏感字段。

2026-09-14

#56467 [Docs] Move russellb to emeritus committer

原始 PR · 作者 russellb · 合并时间 2026-09-14 21:44

文档 重要性 3.19 洞察度 3.00

治理文档更新:russellb 转 emeritus

值得快速浏览(约 3 分钟),无需精读代码;重点看两类决策:(1) 安全区域从双人 owner 收敛为 @jperezdealgaba 单点是否可接受、是否要补 backup;(2) 把 VMT 名单裁剪与 committer 迁移打包进同一个 docs PR 是否合适,因为它让一个纯文档变更带上了对外安全联系方式的语义变化。治理流程上值得借鉴的写法是:源码路径、测试路径、安全路径与 area owner 表一次性对齐,避免只改一半造成旧账号路由残留。

缺陷修复 重要性 5.84 洞察度 6.00

Qwen-VL 视频采样加服务端上限,防止请求放大解码量

值得精读:改动虽小(+10/-4),但它是 request-controlled 参数落到资源消耗路径上的一类典型安全收口,理解 `media_io_kwargs → VideoMediaIO → compute_frames_index_to_sample` 这条链路对排查多模态输入侧问题很有价值。重点看两处设计决策:一是「在采样器内部 clamp」与 Isotr0py 建议的「把 fps/max_frames 变成不可被请求覆盖的 static kwargs」之间的取舍(后者被明确延后为 follow-up refactor);二是评审要求删除新增测试后,Qwen 封顶逻辑处于无测试保护状态。追这条线的读者应关注同系列 glm5next/Molmo2/OpenPangu 封顶 PR 与后续 kwargs 机制重构的落地情况。

2026-09-12
缺陷修复 重要性 8.36 洞察度 7.00

Rust 前端在请求边界拒绝空的结构化输出约束

**值得精读,但不必逐行通读**。建议重点关注设计决策而非代码体量:(1) 校验为何放在 `validate()` 而不是可失败的构造函数——这是 `WIRE → 领域对象` 转换中「保持构造函数可用、把可失败性集中在边界」的典型取舍;(2) 同一份校验如何被 Serde、OpenAI `response_format`、gRPC 三条路径复用,以及两次漏检是如何被发现的,这对任何多入口的服务端都具备借鉴价值;(3) 描述与注释中「engine abort」被更正为「per-request 失败」的过程,揭示了 vLLM 中语法编译错误实际经由 scheduler 逐请求返回的错误传播链。如果只关心结论,读「关键源码片段」中的 `validate()` 与 gRPC 调用点即可。

文档 重要性 2.46 洞察度 3.00

修正 API key 保护范围文档,/inference 并非认证旁路

不建议为这份 PR 精读源码:改动只有 4 行文档,且已被评审方对照 `GUARDED_PREFIX` 验证过,可直接采纳。值得关注的是两点设计/流程问题:(1) 安全文档与鉴权中间件之间的手工同步模式本身就是缺陷源,建议提一个 follow-up,让受保护前缀清单由 `GUARDED_PREFIX` 生成或加一致性测试;(2) 若你正在写 vLLM 的部署/安全文档,建议顺手补齐 “Protected Endpoints” 小节中 `/inference`、`/cohere` 的具体端点,并复核旁路示例清单中的其余路径,避免同一页再次出现内部矛盾。