关键漏洞信息 1. 漏洞概述 项目/产品: GPAC 受影响组件: VobSub demuxer filter (vobsubdmx) / VobSub bitstream parsing (media_tools/vobsub.c) 漏洞类型: 堆越界读取 (Heap Out-of-Bounds Read) 触发方式: 解析特制的VobSub .idx + .sub文件(或单个.idx导致GPAC打开匹配.sub) 影响: 至少导致服务拒绝(崩溃)。由于是OOB读,主要是一个稳定性问题,潜在的信息泄露取决于读取值后续的处理方式(在此未展示)。 攻击向量: 攻击者提供特制的VobSub字幕包,受害者使用GPAC或基于GPAC的应用打开/处理。 2. 受影响版本 确认易受攻击的版本: GPAC 2.4.0 3. 根因分析 3.1 位置 文件: src/filters/dmx_vobsub.c & src/media_tools/vobsub.c 函数: vobsubdmx_send_stream(...)与vobsub_get_subpic_duration(...) 问题代码路径: 从.sub chunk中读取psize和dsize并传给时长解析器。 3.2 根因详情(对攻击者控制的dsize缺少边界检查) 在vobsubdmx_send_stream中,demuxer从.sub数据流中读取两个16位值: 问题: psize控制packet的分配大小,dsize是攻击者控制且在调用vobsub_get_subpic_duration(...)前未与psize进行验证。 当dsize >= psize - 1时,vobsub_get_subpic_duration(...)执行越界读操作。 4. 漏洞复现 PoC文件: poc_vobsub.idx, poc_vobsub.sub 生成PoC命令: 复现命令: 使用AddressSanitizer构建的GPAC运行。 5. 影响评估 最小影响: 打开/处理特制VobSub字幕时服务拒绝(崩溃)。 安全风险: 是OOB读(非写)。主要展示影响是崩溃,是否能转为信息泄露取决于额外的程序行为,在此未演示。