CVE-2026-42778Apache MINA 2.1.X和2.2.X分支在修复CVE-2024-52046时存在缺陷,导致反序列化保护机制失效。漏洞原因在于AbstractIoBuffer.getObject()方法中的类名白名单检查时机过晚,发生在类的静态初始化代码执行之后。攻击者可以利用此漏洞,在白名单检查生效前触发恶意类的静态代码块,从而在无需认证的情况下通过网络实现远程代码执行,严重影响系统的机密性、完整性和可用性。
该漏洞属于典型的Java反序列化漏洞,其核心原理是“检查时机滞后”。在Apache MINA的受影响版本中,当调用IoBuffer.getObject()进行反序列化时,系统虽然配置了类名白名单以限制反序列化的类,但实现逻辑存在缺陷。Java反序列化机制在读取对象时,会首先加载类并执行其<clinit>(静态初始化块),然后才进行白名单校验。攻击者可以构造恶意的序列化数据,其中包含一个类名不在白名单中但拥有危险静态代码块的类(或利用Gadget Chain)。当服务器处理该数据时,恶意类的静态代码块会在白名单检查抛出异常之前就已经执行完毕,导致安全防御被绕过,攻击者得以执行任意命令。