支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2025-70307 基础信息
漏洞信息
                                        # N/A

## 概述  
GPAC v2.4.0 中 `dump_ttxt_sample` 函数存在栈溢出漏洞,攻击者可通过特制数据包导致拒绝服务(DoS)。

## 影响版本  
GPAC 2.4.0

## 细节  
`dump_ttxt_sample` 函数在处理文本样本数据时未对输入数据长度进行有效检查,导致栈缓冲区溢出。

## 影响  
攻击者可利用该漏洞触发程序崩溃,造成拒绝服务。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
N/A
来源:美国国家漏洞数据库 NVD
漏洞描述信息
A stack overflow in the dump_ttxt_sample function of GPAC v2.4.0 allows attackers to cause a Denial of Service (DoS) via a crafted packet.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
GPAC 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
GPAC是GPAC开源的一款开源的多媒体框架。 GPAC v2.4.0版本存在安全漏洞,该漏洞源于dump_ttxt_sample函数存在栈溢出,可能导致拒绝服务。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2025-70307 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2025-70307 的情报信息
  • 标题: POC/gpac_boxDump/GPAC_tx3g.md at main · zakkanijia/POC · GitHub -- 🔗来源链接

    标签:

    神龙速读:
                                            ## 关键漏洞信息
    
    ### 1. 漏洞概述
    
    - **项目/产品**: GPAC
    - **影响组件**: ISO Media dump / Timed Text XML export (`MP4Box -ttx`), `isomedia/box_dump.c`
    - **漏洞类型**: 基于栈的缓冲区溢出(越界写)通过未经检查的 `memcpy`
    - **触发方式**: 一个带有 `tx3g` 定时文字样本的特殊 MP4 文件,其中文本长度字段很大,有效载荷以 UTF-16 BE BOM (`0xFE 0xFF`) 开头。
    - **影响**: 最低导致服务拒绝(崩溃)。由于这是栈上的 OOB 写入,内存损坏可能可被利用,这取决于构建标志和栈布局(此报告中未演示)。
    - **攻击向量**: 受害者运行 `MP4Box -ttx`(或任何转储定时文本轨迹的 GPAC 代码路径)在特殊构造的 MP4 文件上。
    
    ### 2. 影响版本
    
    - **确认易受攻击的版本**: GPAC 2.4.0(ASan 下再现)
    - **可能受影响的版本**: 其他包含相同 `dump_ttxt_sample` 逻辑的版本。
    
    ### 3. 根因
    
    #### 3.1 位置
    
    - **文件**: `src/isomedia/box_dump.c`
    - **函数**: `dump_ttxt_sample(...)`
    - **崩溃行 (GPAC 2.4.0 构建)**: `box_dump.c:3605`
    
    #### 3.2 根因详细信息
    
    `dump_ttxt_sample(...)` 在堆栈上分配一个固定大小的 UTF-16 缓冲区:
    
    - `unsigned short utf16Line[10000];` → **20,000 字节**
    
    当样本文本以 UTF-16 BE BOM 开头时,代码执行:
    
    - `memcpy((char*)utf16Line, s_txt->text + 2, s_txt->len);`
    
    攻击者通过 `tx3g` 样本的 16 位长度字段控制 `s_txt->len`。
    
    如果 `s_txt->len > sizeof(utf16Line)`(即 > 20,000 字节),`memcpy` 将写入 `utf16Line` 缓冲区之外,导致堆栈损坏。这是一个经典的缺少边界检查问题 / 长度不匹配(它似乎还复制 `len` 字节从 `text+2` 开始,即它应该复制 `len-2` 并将其封顶。
    
    ### 4. 概念验证 (PoC) 和再现
    
    #### 4.1 生成 PoC 的脚本附件:
    
    **poc_tx3g_utf16_stack_overflow.py**
    
    产生一个最小的 MP4 文件,其中包含一个 `tx3g` 样本:
    
    - `text_len = 30000`
    - 有效载荷以 `0xFE 0xFF` 开头
    
    #### 4.2 生成 PoC
    
    ```bash
    python3 poc_tx3g_utf16_stack_overflow.py
    # 输出: poc_tx3g_utf16_stack_overflow.mp4
    ```
    
    #### 4.3 再现命令
    
    使用启用了 AddressSanitizer 的 GPAC 构建运行:
    
    ```bash
    ASAN_OPTIONS=abort_on_error=1:detect_leaks=0:symbolize=1:print_stacktrace=1 ./bin/gcc/MP4Box -ttx 1 poc_t
    ```
    
    #### 4.4 预期结果(关键摘录)
    
    ASan 报告 `stack-buffer-overflow`,写操作起源于 `memcpy`:
    
    - `WRITE of size 30000`
    - `dump_ttxt_sample isomedia/box_dump.c:3605`
    
    完整 ASan 输出见 `asan.txt` 文件。
    
    ### 5. 影响评估
    
    - **最低影响**: 处理恶意 MP4 定时文本轨迹时崩溃导致的服务拒绝。
    - **安全风险**: 这是一个栈越界写入(内存损坏)。可利用性取决于构建和环境,并且在此报告中未展示。
    
    ### 6. 建议修复方案
    
    - 在 `memcpy` 之前,针对堆栈缓冲区大小验证复制长度,考虑 BOM 和终止符。
    - 如果 `s_txt->len` 对该路径不合理地大,拒绝或返回错误。
    - 考虑根据验证过的输入动态分配缓冲区大小。
    ```
    
    此外,为了完整起见,还提供了相关的附件包括 ASan 输出文件、包含易受攻击代码的 C 文件以及生成 PoC 的 Python 脚本。
                                            
    POC/gpac_boxDump/GPAC_tx3g.md at main · zakkanijia/POC · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2025-70307
四、漏洞 CVE-2025-70307 的评论

暂无评论


发表评论