Apache MINA 是一个流行的网络应用程序框架,用于构建高性能和可扩展的网络应用程序。该漏洞被追踪为 CVE-2024-52046,CVSS 得分为 10(最高严重性评级),攻击者可能利用该漏洞在易受攻击的系统上执行任意代码,因此立即修补该漏洞成为当务之急。Apache MINA 以其抽象事件驱动异步 API 而闻名,该 API 简化了通过 TCP/IP 和 UDP/IP 等传输进行的网络编程,被广泛应用于各种应用程序中。然而,其 ObjectSerializationDecoder 组件中的一个漏洞为恶意行为者打开了方便之门。该解码器利用 Java 本机反序列化处理序列化数据,被发现缺乏关键的安全检查。问题的根源在于易受攻击的 MINA 版本处理对象反序列化的方式。如果没有适当的防护措施,攻击者就可以发送特制的恶意序列化数据,这些数据经 ObjectSerializationDecoder 处理后,可能会导致远程代码执行 (RCE)。这意味着攻击者有可能完全控制受影响的系统。CVE-2024-52046 漏洞影响多种 Apache MINA 版本,特别是:Apache MINA 2.0.0 至 2.0.26Apache MINA 2.1.0 至 2.1.9Apache MINA 2.2.0 至 2.2.3值得注意的是,并非所有使用 MINA 的应用程序都会自动受到攻击。当应用程序使用 IoBuffer#getObject() 方法时就会产生风险,因为当使用 ObjectSerializationCodecFactory 类的 ProtocolCodecFilter 实例被添加到过滤器链时,该方法可能会被调用。如果您的应用程序依赖于这些特定的类和方法,您就有可能被暴露,必须立即采取措施。Apache MINA 团队通过发布以下修补版本,迅速解决了这一关键漏洞:Apache MINA 2.0.27Apache MINA 2.1.10Apache MINA 2.2.4然而,仅仅升级是不够的。更新后的版本引入了一个重要的安全增强功能:开发人员现在必须明确定义 ObjectSerializationDecoder 允许反序列化哪些类。这可以通过三个新方法来实现:accept(ClassNameMatcher classNameMatcher)accept(Pattern pattern)accept(String… patterns)默认情况下,解码器现在将拒绝所有类,基本上是按照 “全部拒绝 ”的原则运行,除非明确允许。这就增加了一个重要的控制层,防止反序列化不受信任和潜在恶意的对象。Apache MINA 团队已澄清,FtpServer、SSHd 和 Vysper 子项目不受此漏洞影响。