漏洞关键信息 1. 漏洞概述 项目/产品: GPAC 受影响组件: GSF demuxer filter ( ) — 漏洞类型: 堆越界读取(堆内存读取超出边界) 触发条件: 特制的 文件,其中“tune-in”头包含长度为 的 字段,该字段未以 NULL 终止,然后使用 进行日志记录。 影响: - 某些构建/环境中的拒绝服务(崩溃) - 如果在遇到 NULL 字节之前读取并打印超出边界的字节,则可能通过日志泄露信息(本文未演示) 攻击向量: 受害者打开/处理包含 过滤器图的特制 文件。 2. 受影响版本 确认受影响的版本: GPAC 2.4.0 可能受影响的版本: 其他包含相同 “magic” 解析/日志记录逻辑的版本。 3. 根源分析 3.1 位置 文件: 函数: (tune-in 数据包解析) 3.2 根源细节 当解析 tune-in 头时, 读取一个可变长度 ,分配恰好为 个字节的缓冲区,并读取 个字节到该缓冲区。 因为 未以 NULL 终止,所以格式化字符串 导致 风格代码在堆分配中读取超过边界,直到遇到 NULL 字节,导致堆越界读取。 次要问题(同样会导致越界读取): 使用攻击者控制的 。如果 (其中 来自过滤器参数), 可能会读取 结尾以外的区域。 4. 证明概念 (PoC) 和复现 4.1 PoC 生成器 附件: 脚本功能: 创建包含 和 (无 NULL)的 tune-in 头的 。 4.2 生成 PoC 4.3 复现命令 注意: 建议使用 ASan 构建以可靠地检测堆越界读取。 5. 影响评估 最小影响: DoS(某些构建/环境中的崩溃) 潜在信息泄露: 越界字节可能作为已记录的“magic”字符串的一部分读取并打印,直到遇到 NULL 字节。这取决于分配器行为和日志输出的可用性,本文中未演示。 由于这是一个 OOB 读取(而非写入),此问题主要涉及稳定性 / 潜在信息泄露,而非直接内存损坏。 6. 附件 : 受影响代码(针对“magic”解析和日志记录的上下文) : PoC 生成器脚本