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

目标:1000 元,已筹:736

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

## 概述
GPAC v2.4.0 中的 GSF 解复用滤波器组件存在越界读取漏洞,攻击者可通过特制的 .gsf 文件触发该漏洞。

## 影响版本
GPAC v2.4.0

## 细节
漏洞位于 GSF 解复用滤波器组件,在处理恶意构造的 .gsf 文件时未正确验证数据边界,导致越界读取。

## 影响
攻击者可利用该漏洞导致程序崩溃,从而实现拒绝服务(DoS)攻击。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

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

    标签:

    神龙速读:
                                            # 漏洞关键信息
    
    ## 1. 漏洞概述
    - **项目/产品**: GPAC
    - **受影响组件**: GSF demuxer filter (`gsfdmx`) — `src/filters/dmx_gsf.c`
    - **漏洞类型**: 堆越界读取(堆内存读取超出边界)
    - **触发条件**: 特制的 `.gsf` 文件,其中“tune-in”头包含长度为 `len > 0` 的 `magic` 字段,该字段未以 NULL 终止,然后使用 `"%"` 进行日志记录。
    - **影响**: 
      - 某些构建/环境中的拒绝服务(崩溃)
      - 如果在遇到 NULL 字节之前读取并打印超出边界的字节,则可能通过日志泄露信息(本文未演示)
    - **攻击向量**: 受害者打开/处理包含 `gsfdmx` 过滤器图的特制 `.gsf` 文件。
    
    ## 2. 受影响版本
    - **确认受影响的版本**: GPAC 2.4.0
    - **可能受影响的版本**: 其他包含相同 `gsfdmx` “magic” 解析/日志记录逻辑的版本。
    
    ## 3. 根源分析
    ### 3.1 位置
    - **文件**: `src/filters/dmx_gsf.c`
    - **函数**: `gsfdmx_tune(...)` (tune-in 数据包解析)
    
    ### 3.2 根源细节
    当解析 tune-in 头时,`gsfdmx` 读取一个可变长度 `len`,分配恰好为 `len` 个字节的缓冲区,并读取 `len` 个字节到该缓冲区。
    
    ```c
    len = gsfdmx_read_vlen(bs);
    if (len) {
      char *magic = gf_malloc(sizeof(char)*len);
      gf_bs_read_data(bs, magic, len);
      ...
      GF_LOG(GF_LOG_INFO, GF_LOG_CONTAINER,
        ("[GSFDemux] tuning in stream, magic %s\n", magic));
      gf_free(magic);
    }
    ```
    
    因为 `magic` 未以 NULL 终止,所以格式化字符串 `"%"` 导致 `printf` 风格代码在堆分配中读取超过边界,直到遇到 NULL 字节,导致堆越界读取。
    
    次要问题(同样会导致越界读取):`memcmp(ctx->magic, magic, len)` 使用攻击者控制的 `len`。如果 `len > strlen(ctx->magic)`(其中 `ctx->magic` 来自过滤器参数),`memcmp` 可能会读取 `ctx->magic` 结尾以外的区域。
    
    ## 4. 证明概念 (PoC) 和复现
    ### 4.1 PoC 生成器
    - **附件**: `gen_poc_gsf_magic_oobread.py`
    - **脚本功能**: 创建包含 `magic_len=4` 和 `magic_bytes="ABCD"`(无 NULL)的 tune-in 头的 `poc_gsf_magic_oobread.gsf`。
    
    ### 4.2 生成 PoC
    ```bash
    python3 gen_poc_gsf_magic_oobread.py
    # 输出: poc_gsf_magic_oobread.gsf
    ```
    
    ### 4.3 复现命令
    ```bash
    gpac -i poc_gsf_magic_oobread.gsf:gsfdmx:magic=ABCD inspect:deep
    ```
    
    注意: 建议使用 ASan 构建以可靠地检测堆越界读取。
    
    ## 5. 影响评估
    - **最小影响**: DoS(某些构建/环境中的崩溃)
    - **潜在信息泄露**: 越界字节可能作为已记录的“magic”字符串的一部分读取并打印,直到遇到 NULL 字节。这取决于分配器行为和日志输出的可用性,本文中未演示。
    
    由于这是一个 OOB 读取(而非写入),此问题主要涉及稳定性 / 潜在信息泄露,而非直接内存损坏。
    
    ## 6. 附件
    - `dmx_gsf.c`: 受影响代码(针对“magic”解析和日志记录的上下文)
    - `gen_poc_gsf_magic_oobread.py`: PoC 生成器脚本
                                            
    POC/gpac_gsf/GPAC_gsf.md at main · zakkanijia/POC · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2025-70308
四、漏洞 CVE-2025-70308 的评论

暂无评论


发表评论