漏洞总结 漏洞概述 在 函数中,当解析被截断的 chunk 时,存在堆缓冲区越界读取(Heap buffer over-read)漏洞。具体表现为在 操作时访问了未分配的内存区域。 影响范围 该漏洞允许攻击者通过构造畸形 AVI 文件触发堆越界读取,导致解析器崩溃。这属于拒绝服务(DoS)或解析器健壮性问题,根源在于 解析过程中缺少边界检查。 修复方案 建议在解析嵌套的 chunk 字段前增加以下验证: 1. 验证块头长度:确保块头至少还剩 8 个字节。 2. 验证缓冲区范围:确保声明的块长度(chunk length)在剩余的 缓冲区范围内。 3. 验证固定偏移访问:对于 / ,确保剩余字节足以支持所有固定偏移量的访问(如 +4, +14, +16, +20, +24, +32),然后再读取这些字段。 4. 中止解析:遇到畸形或截断的子块时,应立即中止解析。 POC 代码