我修复了 FFmpeg 中潜伏了 8 年的 Bug
来源:dev.to — Jul 19
📋 概述
Umar Pathan 讲述了他如何发现并修复 FFmpeg 中一个潜伏8 年的堆越界写入漏洞。这个 bug 存在于 RASC 解码器的 decode_dlta() 函数中,可被恶意构造的文件触发。文章从阅读安全研究者的 PoC 出发,通过深入分析源码证明该漏洞根本原因是边界检查不完整,不仅修复了特定帧宽的问题,还提交了更通用的解决方案。
🔑 核心要点
- FFmpeg 的 RASC 解码器中存在一个8 年未修复的堆越界写入漏洞
- 漏洞根本原因是 decode_dlta() 的边界检查宏只校验了每行宽度,未处理帧高导致的越界
- 安全研究者 bikini 的 PoC 证明可以通过 64x1 帧覆盖回调指针实现代码执行
- 修复不仅覆盖特定帧宽,而是从结构层面杜绝了同类型越界的可能性
- 冷门文件格式(RASC)的代码路径最容易成为安全盲区,因为没人主动审查
💡 金句
不是代码审查发现了这个 bug——是一个安全研究者的 PoC 证明了它的存在。8 年,没人看过那段代码。
👍 0
👎 0
← 返回 Dev.to 首页