016 — 安全工作流程
安全问题通常通过 安全表单 发送。
如果问题直接报告到公共页面(如仓库 issue 或论坛主题),请获取消息 并删除该 issue。感谢报告者,并指出下次使用安全表单。
mermaid
flowchart TD
form[Security form report] --> verify[Verify issue]
public[Public report] --> remove[Save details and delete public issue]
remove --> redirect[Point reporter to the security form]
redirect --> verify
verify -->|needs details| requestInfo[Request more information]
requestInfo --> verify
verify -->|valid| advisory[Create draft security advisory]
advisory --> severity[Set CVSS severity]
severity --> credit[Ask about reporter credit]
credit --> cve[Request CVE number]
cve --> patch[Prepare patch pull request]
patch --> wait[Wait for CVE allocation]
wait --> release[Release]
release --> publish[Publish advisory and submit FriendsOfPHP entry]验证
验证问题是否有效。如果需要,请求更多信息。
添加安全公告
创建一个 GitHub 安全公告草稿。
确定严重程度
给予报告者荣誉
询问报告者是否希望因发现问题而获得荣誉。如果是,请指向其 GitHub 账户。
请求 CVE 编号
准备好后,请求一个 CVE。
准备补丁
准备一个修复问题的 pull request。GitHub 允许在私有 fork 中执行此操作。
等待 CVE 编号分配
通常需要几天时间。
发布
- 在标记下一个包发布之前合并补丁 pull request。
- 发布安全公告。
- 将 CVE 添加到 FriendsOfPHP/security-advisories。参见 #488 作为示例。