CVE-2025-68617FluidSynth是一款基于SoundFont 2规范的软件合成器,广泛应用于音频处理、音乐制作和嵌入式系统中。在2.5.0至2.5.2版本中,存在一个严重的竞态条件漏洞。当卸载DLS(Downloadable Sounds)文件时,如果合成器实例正在被并发销毁,或者正在使用已卸载DLS文件的样本进行音频合成,并发运行的线程可能在DLS文件卸载过程中访问已被释放的堆内存,导致堆内存释放后使用(Use-After-Free)漏洞。该漏洞的CVSS评分为7.0,属于高危级别,攻击复杂度高但无需认证即可触发,机密性、完整性和可用性均受到严重影响。攻击者可通过诱导用户打开特制的SoundFont文件或DLS文件来触发此漏洞,可能导致应用程序崩溃或执行任意代码。
漏洞根源在于FluidSynth在处理DLS文件卸载时的线程同步机制不完善。当主线程调用fluid_synth_remove_bank()或触发合成器销毁时,音频渲染线程可能正在使用该DLS文件的样本进行音频合成。具体表现为:1)合成器销毁时会触发所有DLS文件的卸载操作;2)同时音频合成线程正在读取DLS样本数据;3)卸载操作释放了DLS相关的内存结构;4)音频线程访问已释放的内存区域。这种竞态条件在多线程环境下(如音频实时处理)极易触发。攻击者可通过构造包含恶意DLS引用的SoundFont文件,诱导程序在特定时机执行卸载操作来稳定触发漏洞。技术层面上,漏洞涉及堆内存的并发访问缺乏适当的锁保护,缺少对活跃音频Voice的状态检查机制,以及DLS资源生命周期管理的缺陷。