CVE-2025-56226CVE-2025-56226是Libsndfile音频处理库中的一个中等严重性内存泄漏漏洞。该漏洞存在于libsndfile <= 1.2.2版本的mpeg_l3_encode.c文件中,具体位于mpeg_l3_encoder_init()函数。当程序初始化MP3编码器时,该函数未能正确释放已分配的内存资源,导致每次调用编码器初始化时都会产生内存泄漏。攻击者可以通过构造特制的音频文件或持续调用存在漏洞的编码器功能,使目标系统的可用内存逐渐耗尽,最终可能导致应用程序崩溃或系统服务中断。由于该漏洞不需要任何认证或用户交互即可触发(CVSS 3.1评分5.3),因此在处理不可信来源音频文件的场景中具有较高的实际威胁性。内存泄漏是一种典型的资源管理错误,虽然不会直接导致代码执行或数据泄露,但长期运行的服务(如音频处理服务器、媒体转换服务等)更容易受到该漏洞的影响。
该漏洞的技术根源在于Libsndfile库中MP3编码器初始化函数mpeg_l3_encoder_init()的内存管理缺陷。在该函数的执行过程中,程序会调用多种内存分配函数(如malloc、calloc等)来初始化MP3编码所需的内部数据结构和缓冲区。然而,在初始化失败或函数退出时,部分已分配的内存块未能通过对应的free()函数进行释放。具体来说,当mpeg_l3_encoder_init()在执行中途遇到错误条件而返回时,已分配的部分资源未被正确清理。此外,在成功初始化后,如果调用方未能正确调用清理函数,内存也会持续泄漏。攻击者可以利用这一漏洞,通过反复触发编码器初始化操作(如批量处理音频文件),使目标进程的内存占用持续增长。在资源受限的环境中,这可能导致内存耗尽、应用程序崩溃或触发OOM(Out of Memory)杀死机制。由于该漏洞位于音频处理的核心模块,任何使用Libsndfile进行MP3编码的应用程序都可能受到影响。