漏洞关键信息 项目: GPAC 组件: OGG demuxer filter ( ) 函数: 漏洞类型: Off-by-one out-of-bounds read/write (1 byte) 测试版本: GPAC-2.4.0 (local build, clang-17 + ASan/UBSan) 报告人: zakka 日期: 2025-12-19 摘要 函数 从攻击者控制的 OGG/OpusTags 元数据中读取一个 32 位长度 ( ) 并仅检查: 随后执行以下操作: 当 时,访问 就变成了 ,这是有效缓冲区范围之外的一个字节,导致 1 字节的 OOB 读取和写入(off-by-one)。 根源分析 代码假定 是 缓冲区的有效索引,但边界检查允许相等。 影响/严重性说明 OOB 恰好为 1 字节。 写入是瞬时的,这通常能避免直接利用。 实际影响仍可能包括未定义行为和潜在崩溃,具体取决于缓冲区布局和分配器行为。 在许多构建中,ASan 可能不会报告,因为访问可能落在同一底层分配内(缓冲区内溢出),但 OOB 相对于函数的 合同仍然是真实的。 提议修复措施 调整边界检查,以禁止在访问 之前相等: 或等效地确保在访问 之前 。