文章摘要
深度科技公司利用自主安全代理在FFmpeg中发现21个零日漏洞,部分漏洞已潜伏15-20年。相比传统检测方法(1万美元),该技术仅花费1千美元就生成了可复现的漏洞验证代码,并成功演示远程代码执行攻击。FFmpeg作为处理复杂媒体文件的全球核心软件,其150万行C代码虽经长期测试仍存在安全隐患。此前谷歌和Anthropic也曾发现类似漏洞。
文章总结
以下是经过编辑整理后的中文内容,保留了关键细节并删减了非核心信息:
标题:FFmpeg中发现21个零日漏洞 | depthfirst深度分析
核心发现:depthfirst研发的自主安全检测系统在FFmpeg中发现21个零日漏洞。这些漏洞中部分已潜伏15-20年,系统通过生成可复现的漏洞验证样本(PoC)确认了漏洞有效性,成本仅为同类研究的10%(1000美元 vs 10000美元)。
背景概述
FFmpeg作为全球广泛部署的多媒体处理库,其安全性至关重要。近期: - Google Big Sleep团队披露了13个FFmpeg漏洞 - Anthropic公司通过Mythos模型也发现了若干安全问题
这些进展表明,AI模型已具备分析复杂C代码的能力。
安全检测系统特性
与传统代码分析工具不同,depthfirst的系统具有以下特点: 1. 威胁建模优先:自动识别代码库中的攻击面 2. 深度验证机制: - 追踪数据流路径 - 验证攻击者可控输入 - 确认漏洞可达性 3. 结果可复现:每个发现都附带具体PoC样本
漏洞详情
共发现21个零日漏洞,其中8个已分配CVE编号:
| CVE编号 | 漏洞类型 | 引入年份 | 影响组件 | |---------------|-------------------|--------|-----------------| | CVE-2026-39210| 堆缓冲区溢出 | 2010 | TS解复用器 | | CVE-2026-39211| 整数溢出 | 2010 | swscale组件 | | CVE-2026-39212| 栈缓冲区溢出 | 2025 | ffmpegopt.c | | CVE-2026-39213| 堆缓冲区溢出 | 2023 | yuv4mpegenc输入 | | CVE-2026-39214| 栈缓冲区溢出 | 2003 | SDT实现 | | CVE-2026-39215| 堆缓冲区溢出 | 2012 | updatemb_info()| | CVE-2026-39216| 堆缓冲区溢出 | 2012 | img2enc.c | | CVE-2026-39217| 堆缓冲区溢出 | 2025 | VP9解码器 |
其他13个漏洞(按内部编号DFVULN-117至DFVULN-127)涉及: - RTP协议解析器(AV1/JPEG/LATM/MPEG-4) - CAF解复用器 - AVI解复用器 - RTSP服务端等组件
典型案例分析:AV1 RTP解包器漏洞(CVE-2026-39210)
漏洞机理:
1. 处理时间分隔符(TD)时,代码错误推进写入指针(pktpos += obu_size)
2. 但未相应扩展缓冲区内存
3. 后续写入操作导致堆溢出
利用条件:
- 攻击者只需提供特制RTSP流(如ffmpeg -i rtsp://attacker/stream)
- 单个183字节的恶意数据包即可触发
内存布局:
c
struct AVBuffer {
uint8_t *data; // +0
size_t size; // +8
atomic_uint refcount; // +16
void (*free)(...); // +24 ← 攻击目标
void *opaque; // +32
};
通过精确控制溢出偏移量(148字节),可覆盖free函数指针。
影响评估
该漏洞影响所有使用FFmpeg处理不可信RTSP流的场景: - 媒体转码服务 - 视频监控系统 - 流媒体处理管道
攻击无需特殊配置,常规RTSP播放操作即可触发。
修复建议
建议用户及时更新FFmpeg至包含相关补丁的版本。完整技术细节和PoC参见GitHub仓库。
(注:本文已去除原始报告中的部分技术细节和重复描述,保留了漏洞的核心特征和利用原理)
评论总结
以下是评论内容的总结,平衡呈现不同观点并保留关键引用:
漏洞严重性争议
- 认为严重: "Wow this is actually pretty serious...several services where I can imagine this is exploitable today" (评论2) "Very serious...control of the instruction pointer is ours" (评论4)
- 认为被夸大: "Inflated use of the term zero-day...none is actually a zero-day" (评论12) "I find difficult to know how serious the issue is" (评论6)
FFmpeg的安全记录
- 长期存在问题: "exceptionally terrible track record...inexhaustible supply of memory corruption bugs" (评论7) 引用2014年谷歌报告:https://security.googleblog.com/2014/01/ffmpeg-and-thousand-fixes.html (评论7)
- 开发者贡献肯定: "Fabrice Bellard is a genius...made the world measurably richer" (评论3)
防御措施建议
- 沙箱隔离: "can't think of a program more worthy of sandboxing...run inside a VM or gVisor" (评论3) "absolutely not something you should be running outside of a sandbox" (评论7)
- 编程语言选择: "would have been detected by a language with saner behaviour" (评论10)
漏洞利用条件
- 实际限制: "doesn't achieve arbitrary RCE on its own...need writable and executable page" (评论4)
- 攻击场景: "Any deployment that points FFmpeg at an attacker-influenced RTSP URL is exposed" (评论2引用)
安全行业反思
- 工具滥用担忧: "Is the future...to subtly hide prompt injections" (评论5)
- 漏洞挖掘现状: "script kiddie can now find it 5 minutes after release for $2" (评论15)
- 商业宣传质疑: "bigging up their 'security agent'...just prompt engineering" (评论16)
关键术语争议: "That's not what 'zero-day' means" (评论11) "Inflated use of the term zero-day" (评论12)