CVE-2025-12205CVE-2025-12205是Kamailio 5.5版本中存在的一个安全漏洞,存在于配置文件处理模块中。该漏洞的具体位置是src/core/cfg.lex文件中的sr_push_yy_state函数。由于该函数存在释放后重用(Use After Free)漏洞,攻击者可以通过精心构造的配置文件来触发此漏洞。
Kamailio是一个开源的SIP(会话初始协议)服务器,广泛应用于VoIP电话系统、即时通讯和实时通信服务中。作为一个关键的通信基础设施组件,Kamailio的安全性至关重要。该漏洞的发现者[email protected]于2025年10月27日披露了此漏洞,目前该漏洞的真实性仍受到质疑。
此漏洞需要从本地位置发起攻击,攻击者需要具备低权限。攻击方式涉及操纵配置文件,而在许多实际场景中,配置文件通常受到较好的权限控制,这使得该漏洞的利用难度较高。尽管如此,由于该漏洞已公开,攻击者可能尝试利用它进行攻击。
该漏洞的CVSS评分为5.3,属于中等严重程度。虽然CVSS向量的各个指标(机密性、完整性、可用性)都显示为低影响,但攻击者仍可能利用释放后重用漏洞来执行任意代码或造成应用程序崩溃。建议使用Kamailio的组织尽快评估此漏洞的风险,并采取相应的安全措施。
该漏洞位于Kamailio的配置文件解析模块,具体是src/core/cfg.lex文件中的sr_push_yy_state函数。cfg.lex文件是用于词法分析的源文件,负责解析Kamailio的配置文件。
释放后重用(Use After Free)是一种内存破坏漏洞,当程序在释放内存后继续使用该内存时会发生。这种漏洞可能导致多种严重后果,包括:
1. 敏感信息泄露:攻击者可能通过访问已释放的内存来获取敏感数据
2. 代码执行:精心设计的堆喷射技术可以覆盖释放的内存,使攻击者能够执行任意代码
3. 程序崩溃:访问已释放的内存可能导致应用程序异常终止
在sr_push_yy_state函数中,问题可能出在状态机转换过程中。当函数处理配置文件的语法状态时,如果内存分配和释放的时序不正确,可能导致已释放的内存指针被后续代码继续使用。攻击者需要创建一个特制的Kamailio配置文件,触发特定的状态转换序列,从而在正确的时间点释放内存,然后触发对该内存的访问。
由于该漏洞需要本地访问权限,攻击者必须能够修改目标系统上的Kamailio配置文件。在多租户环境或配置文件权限配置不当的系统上,此漏洞的利用可能性会增加。