关键漏洞信息 标题: CCExtractor ccextractor c65fb08 内存损坏 描述: - 我们在ccextractor程序中发现了一个段错误。当尝试使用mprint记录消息时,崩溃发生在processmp4函数中。 - ASAN报告指出,由于在地址0xbebebebebebebebe的READ内存访问导致的SEGV。这种特定模式(0xBE)通常表示应用程序正在访问已被释放(Use-After-Free)或未初始化的内存,或通过垂悬指针传递给strlen并通过printf. - 厂商已确认并修复了此漏洞,提交ID为[fd7271b] (https://github.com/CCExtractor/ccextractor/commit/fd7271bae238ccb3ae8a71304ea64f0886324925)。 环境: - OS: Linux x86_64 - 编译器: Clang - 构建配置: Release模式,已启用ASan 漏洞详情: - 目标: CCExtractor - 漏洞类型: CWE-416: Use After Free / CWE-457: 使用未初始化内存 - 函数: processmp4 -> mprint - 位置: src/lib_ccx/mp4.c:902 - 根本原因分析: 崩溃发生在src/lib_ccx/mp4.c的第902行,调用mprint时。mprint作为vfprintf的包装器,崩溃跟踪在internal_strlen结束,表明mprint正在解析格式字符串(可能包含% s)并尝试计算相应字符串参数的长度。 - 寄存器rdi持有0xbebebebebebebebe。在许多调试环境和清理器(如具有特定标志或某些分配器的ASAN)中,0xBE用于毒化已释放的内存。这表明processmp4持有指向MP4框的指针,在调用过程中的某个时刻未正确处理或释放。