[Docs][Security] Clarify reporter credit and CVE publication timing
1. 执行摘要
这是一次纯文档变更(2 个文件、+28/-4),在 SECURITY.md 和 docs/contributing/vulnerability_management.md 中固化两条安全流程规则:漏洞致谢只给首位报告者(独立重复发现亦不予致谢),以及 CVE 在补丁合并时申请、安全公告随修复进入 vLLM 发行版时发布。变更不触及任何代码路径,但会直接影响外部安全研究者与下游厂商对 vLLM 漏洞流程的预期。重要度属于常规维护(3/10),洞察价值中等(4/10)——真正值得关注的是政策口径而非实现细节。
2. 功能与动机
PR body 给出了两个明确动机:
Credit for a vulnerability is given only to the first reporter. Subsequent reports of the same issue, including independent rediscoveries, are not credited. Duplicate and AI-generated submissions make crediting every submitter impractical.
- 致谢口径模糊:原文档未说明重复提交或独立重复发现是否致谢,VMT 需要逐案解释,沟通成本随重复报告增长。
- 披露时序模糊:原流程只写「VMT 协调发布修复并发布公告」,没有区分 CVE 申请 与 advisory 公开 两个事件,外部研究者无法判断何时能看到 CVE 与公告。
作者还声明这不是重复劳动:对 reporter credit、CVE assignment 与漏洞管理政策更新的开放 PR 检索均未发现已有改动覆盖。
3. 实现拆解
SECURITY.md 新增 Reporter credit 小节(+17 行中的前半):位于报告方式说明与 Threat model 之间,是面向外部的第一手政策入口。明确「只致谢首位报告者、独立重复发现不予致谢」,并把理由写明为重复与 AI 生成报告会让漏洞管理团队承担不可持续的工作量。
SECURITY.md 新增 CVE assignment and advisory publication 小节:紧接着修复流程与「VMT 保留 case-by-case 调整权」段落,规定 advisory 被接受后,补丁合并时申请 CVE,修复进入 vLLM release 时发布公告。
docs/contributing/vulnerability_management.md 新增 Reporter Credit 小节:与 SECURITY.md 表达同一政策,措辞略有差异(“Duplicate and AI-generated submissions are common enough that crediting every submitter is not practical”)。同一条政策存在两处落点,后续修改必须同步。
- 重写 Vulnerability Disclosure 流程条目:原先两条为「VMT 与维护者协调发布修复及包含该修复的更新」和「VMT 在 GitHub 发布安全公告」,现改为「advisory 被接受后,补丁合并时申请 CVE」和「修复进入 vLLM release 时在 GitHub 发布公告」——公告发布时点从 VMT 主动发布改为绑定 vLLM 发行节奏。
- 测试、配置与部署配套:无。文档预览由 mergify bot 的 Read the Docs 构建提供(
https://vllm--55476.org.readthedocs.build/en/55476/),CI 由作者手动以 /ci、/ci run 触发 Buildkite CI #88102。
| 文件 |
变更量 |
关键动作 |
SECURITY.md |
+17/-0 |
新增 Reporter credit、CVE assignment and advisory publication 两节 |
docs/contributing/vulnerability_management.md |
+11/-4 |
新增 Reporter Credit 节,重写 Vulnerability Disclosure 的两条步骤 |
本 PR 为纯文档变更,预处理阶段未提供任何关键源码片段(源码/测试联动信号为空),因此不展示代码。以下引用为合入后政策条款的语义还原,供理解规则边界:
Reporter credit:Credit for a vulnerability is given only to the first reporter. Subsequent reports of the same issue are not credited, including independent rediscoveries. We do not credit every submitter. The volume of duplicate and AI-generated reports would otherwise create unsustainable workload for the vulnerability management team.
CVE assignment and advisory publication:After a security advisory has been accepted, a CVE is requested when a patch for the advisory is merged, and the advisory is published when the fix lands in a vLLM release.
Vulnerability Disclosure 重写后的两条步骤:After the advisory has been accepted, a CVE is requested when a patch for the issue is merged / The advisory is published on GitHub when the fix lands in a vLLM release. Release notes will be updated to include a reference to the security advisory.
5. 评论区精华
“lgtm, thanks!” —— russellb(APPROVED)
维护者一轮快速放行,没有 review comment,说明该政策在维护者层面属于既有共识的文档化,而非新政策引入。
“This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.” —— claude[bot]
来自 fork 的 PR 自动评审被跳过,且无人手动触发,故本 PR 实质只有一轮人工浏览;CodeRabbit 也仅回复 “No actionable comments were generated in the recent review.”。作者随后自行发出 /ci、/ci run 触发 CI,属文档 PR 常规动作,未引发讨论。
讨论中没有出现对以下问题的回应:如何判定「首位」(表单提交时间、triage 结论还是 advisory 创建时间);公告发布绑定 release 后是否存在最长披露时限兜底。
6. 风险与影响
- 社区激励风险:只致谢首位报告者可能降低研究者在已知漏洞上补报 PoC 与修复建议的意愿,损失的是情报而非仅仅是工作量;文档没有为「非首报但有增量信息」留兜底条款。
- 判定口径缺口:文档未定义「首位」的判定依据,在并发提交或近同时提交场景下可能产生争议。
- 披露时序风险:公告发布绑定「修复进入 vLLM release」,若发行周期拉长,公开时间可能被推迟,与业界常见披露时限预期存在张力;
SECURITY.md 保留了 VMT 的 case-by-case 调整权,但没有给出最长等待承诺。
- 一致性维护成本:同一政策在
SECURITY.md 与 docs/contributing/vulnerability_management.md 中以不同措辞重复描述,未来容易只改一处。
- 无运行时风险:不涉及内核、调度、量化、KV 传输或前端代码,没有性能、兼容性回归面。
影响面上,VMT 是直接受益方(获得拒绝重复致谢的书面依据);下游厂商可依据 release 时间表预判公告窗口;普通用户与推理系统的行为完全不变。
7. 关联脉络
- 与仓库历史 PR 的关系:本 PR 与 PR#56058(Rust 前端 HTTP 指标方法标签归一化的安全修复)分属安全响应链条的制度面与修复面——后者是被处理的具体漏洞,前者定义了这类问题从报告、致谢到 CVE 与公告的规则。近期历史 PR 中没有任何改动触及
SECURITY.md 或 docs/contributing/vulnerability_management.md,因此本 PR 是这两份文件在可观察窗口内的独立演进。
- 更大的演进方向:vLLM 正把安全流程从「隐式实践」转为「显式书面契约」——致谢口径、CVE 申请时点、公告发布时点都被绑定到可观测事件(补丁合并、版本发布)。结合近期 PR#56141、PR#56018 对解析器容错与选择逻辑的持续加固,可以看到项目在对外契约(安全、解析、协议)上倾向于先定义清楚规则,再在实现层补齐。
- 提交结构:7 次提交中 6 次是
Merge branch 'main'(作者与 mergify bot 交替执行),仅 e96a2e2 为内容提交,说明分支存活期较长但改动本身很小。
参与讨论