CVE-2025-54539CVE-2025-54539是Apache ActiveMQ NMS AMQP Client中存在的一个高危反序列化漏洞,CVSS评分为9.8,属于严重级别。该漏洞源于客户端在连接到不受信任的AMQP服务器时,对服务器返回的数据执行了不受限制的反序列化操作。攻击者可以通过构造恶意的AMQP服务器响应,利用客户端中存在的无限反序列化逻辑,在客户端侧执行任意代码,从而完全控制受害者的系统。
值得注意的是,尽管Apache ActiveMQ NMS AMQP在2.1.0版本中引入了基于允许/拒绝列表(allow/deny lists)的反序列化限制机制,但该保护机制在特定条件下被发现是可绕过的,因此并未能有效阻止攻击。考虑到Microsoft在.NET 9中已经弃用了二进制序列化功能,Apache项目正在评估在未来版本中彻底移除NMS API中的.NET二进制序列化支持。
该漏洞的披露者为[email protected],披露日期为2025年10月16日。由于该漏洞攻击向量为网络(AV:N),无需认证(PR:N),无需用户交互(UI:N),且对机密性、完整性和可用性均产生高影响(C:H/I:H/A:H),因此具有极高的危害性。一旦有恶意的AMQP服务器部署在网络中,连接到该服务器的客户端将面临直接被入侵的风险。
该漏洞的核心问题在于Apache ActiveMQ NMS AMQP Client在处理来自AMQP服务器的响应数据时,使用了.NET的BinaryFormatter进行反序列化操作,而BinaryFormatter本身存在已知的反序列化漏洞风险。
技术原理:
1. AMQP(Advanced Message Queuing Protocol)是一种消息队列协议,NMS AMQP Client作为客户端库,用于建立与AMQP服务器的连接。
2. 当客户端连接到AMQP服务器并接收服务器返回的响应时,客户端会尝试对这些数据进行反序列化处理。
3. 由于缺乏对反序列化类型的有效限制,攻击者可以在服务器响应中嵌入恶意的序列化对象(如使用ysoserial.net等工具生成的gadget链)。
4. 当客户端对包含恶意payload的数据执行反序列化时,将触发任意代码执行。
绕过机制:
虽然2.1.0版本引入了allow/deny列表机制来限制可反序列化的类型,但该机制存在缺陷。攻击者可以通过以下方式绕过:
- 使用列表中允许的合法类型作为gadget链的一部分;
- 利用类型混淆或继承链绕过类型检查;
- 利用嵌套序列化结构隐藏恶意payload。
利用方式:
1. 攻击者部署一个恶意的AMQP服务器;
2. 诱使目标客户端(使用NMS AMQP Client的应用)连接到该恶意服务器;
3. 恶意服务器在响应中注入精心构造的序列化数据;
4. 客户端反序列化时执行恶意代码,攻击者获得代码执行权限。