# N/A
## 概述
GPAC v2.4.0 中的 `avi_parse_input_file()` 函数存在堆溢出漏洞,攻击者可利用特制的 AVI 文件触发拒绝服务(DoS)。
## 影响版本
GPAC v2.4.0
## 细节
`avi_parse_input_file()` 函数在解析恶意构造的 AVI 文件时,未能正确处理输入数据,导致堆缓冲区溢出。
## 影响
攻击者可使应用程序崩溃,造成拒绝服务(DoS)。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: POC/gpac_avi/GPAC_AVI_indx_heap_overflow.md at main · zakkanijia/POC · GitHub -- 🔗来源链接
标签:
神龙速读:
### 关键信息总结
#### 漏洞概述
**漏洞名称**: GPAC AVI SuperIndex 堆内存溢出
**影响产品**:
- **项目**: GPAC
- **组件**: AVI demuxer (`avidmx`) / AVILIB (`media_tools/avilib.c`)
- **已知受影响版本**: GPAC 2.4.0
- **构建配置(重现用)**: `--enable-avi --enable-sanitizer --enable-debug`
#### 漏洞类型
- **类型**: 堆内存溢出(越界写)
- **CWE建议**: CWE-122 (Heap-based Buffer Overflow)
#### 攻击向量 / 触发条件
- **方式**: 攻击者可以构造一个包含有错误配置的OpenDML `indx` SuperIndex块的AVI文件(比如`wLongsPerEntry`设置为较小/无效值,如2)并且带有至少一个条目。当GPAC使用`wLongsPerEntry * nEntriesInUse`来分配缓存时,随后写出固定大小的SuperIndex条目(每条目16字节),造成堆溢出。
- **典型场景**:
- 用户打开/检查一个恶意的`.avi`文件使用`gpac`(或使用GPAC的AVI demuxer的任何应用)。
#### 影响
- **服务拒绝**: 可靠的程序崩溃。
- **内存损坏**: 堆内存覆盖可能导致执行代码,具体取决于分配器/布局和下游使用情况,尽管这里没有尝试利用漏洞。
#### 提议的修复 / 缓解措施
- **验证`wLongsPerEntry`并保证SuperIndex条目合理**:
- 针对OpenDML的SuperIndex条目应为16字节,拒绝`wLongsPerEntry`不等于4(或至少小于4)的文件。
- **添加边界检查确保`indx`块有足够的余下字节用于`nEntriesInUse * 16`。**
- **使用真实条目结构大小(`nEntriesInUse * sizeof(entry)`)来分配缓存,而不是使用`wLongsPerEntry`**
暂无评论