cat case/PM-2017-0037.md

WebKit 2017 提交 SHA-1 碰撞 PDF 致 Apache SVN 仓库损坏,停止接受提交

P2 · WebKit 的 SVN 仓库因 SHA-1 碰撞文件上传而损坏,停止接受提交、镜像同步中止

summary

2017-02(SHA-1 碰撞攻击公布次日),WebKit 工程师为测试引擎如何处理 SHA-1 碰撞,向 WebKit 的 Apache SVN 仓库提交了 Google 提供的两份内容不同但 SHA-1 相同的 PDF,SVN 据此损坏并停止接受新提交,镜像同步也中止。

timeline

工程师上传碰撞 PDF;SVN 仓库立即因 SHA-1 去重逻辑损坏、拒绝后续提交;删除 PDF 仍无法恢复,镜像同步停滞数小时;Apache 发布预提交校验脚本临时缓解,仓库后续修复。

root_cause

Apache SVN 使用 SHA-1 做文件去重,两份碰撞文件使仓库元数据损坏并阻断提交。本质是依赖已被证明不安全(可碰撞)的哈希做完整性/去重判定。

amplifiers

① 一个被攻破的哈希原语(SHA-1)即可摧毁版本控制仓库。② 删除碰撞文件不能自愈,需额外修复。③ 影响所有基于 SVN 的仓库,非 WebKit 独有。④ 镜像同步中断扩大影响面。

mitigation

Apache 发布预提交脚本拦截已知碰撞 PDF;后续推动 SVN/Git 向更安全的哈希迁移。

lessons

完整性/去重不可依赖可碰撞哈希(SHA-1);关键系统应尽早迁移到 SHA-256 等强哈希;对已知坏输入要有入口校验。

checklist

① 审计系统对 SHA-1 的依赖并制定迁移计划。② 版本控制系统加碰撞文件入口校验。③ 备份/镜像与主线解耦以便快速重建。④ 关注密码学原语的生命周期。