【漏洞通告】关于Apache MINA反序列化存在远程代码执行漏洞的预警通报(CVE-2024-52046)

                                                                        安全通告

                                   关于Apache MINA反序列化存在远程代码执行漏洞的预警通报

                                                                                                     发布日期:2024-1230

                                                                                                     [2024]023

漏洞描述

2024年12月30日监测发现Apache MINA反序列化存在远程代码执行漏洞(CVE-2024-52046),该漏洞是由于Apache MINA 的 ObjectSerializationDecoder 组件使用了 Java 原生反序列化协议来处理传入的序列化数据,但缺乏必要的安全检查和防御机制,攻击者可通过向受影响的应用程序发送特制的恶意序列化数据,利用不安全的反序列化过程触发该漏洞,从而可能导致远程代码执行。

Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能的网络通信框架,旨在帮助开发人员快速构建和管理网络应用程序。

漏洞编号

CVE-2024-52046

漏洞危害

通过受影响的应用程序发送恶意序列化数据可成功利用这一漏洞,攻击者可以通过在受影响的应用程序中,查找使用了IoBuffer#getObject()方法,并且通过ProtocolCodecFilter和ObjectSerializationCodecFactory进行数据处理的地方,将构造好的恶意序列化数据发送到目标应用程序,当数据到达并由ObjectSerializationDecoder处理时,由于该组件缺乏必要的安全检查和防御机制,会对恶意数据进行反序列化操作,从而导致注入的代码在目标系统上执行,造成进一步的敏感信息和数据泄露。

漏洞等级

高危
受影响版本

Apache MINA 2.0.X < 2.0.27

Apache MINA 2.1.X < 2.1.10

Apache MINA 2.2.X < 2.2.4

修复方案

1.目前该漏洞已经修复,受影响用户可升级到以下版本:

Apache MINA 2.0.X >= 2.0.27

Apache MINA 2.1.X >= 2.1.10

Apache MINA 2.2.X >= 2.2.4

https://mina.apache.org/downloads-mina_2_0.html

2.配置ObjectSerializationDecoder:

在升级后,还需要配置ObjectSerializationDecoder实例,以限制哪些类可以被反序列化。默认情况下,ObjectSerializationDecoder 会拒绝所有传入的类,需要使用以下方法之一来明确允许特定的类:

accept(ClassNameMatcher classNameMatcher):使用提供的ClassNameMatcher来匹配允许反序列化的类名。

accept(Pattern pattern):使用标准Java正则表达式来匹配允许反序列化的类名。

accept(String… patterns):使用Apache Commons IO库中的通配符模式来匹配允许反序列化的类名。

3.检查使用 IoBuffer#getObject() 的地方:

该漏洞仅在应用程序使用 IoBuffer#getObject() 方法,并通过 ProtocolCodecFilter 和 ObjectSerializationCodecFactory 进行数据处理时才会受到影响,应确保应用程序:

  • 升级到修复版本。
  • 配置并限制可以通过反序列化处理的类。
  • 如果不需要 getObject() 方法,避免使用它,以减少安全风险。

参考链接

https://nvd.nist.gov/vuln/detail/CVE-2024-52046

https://seclists.org/oss-sec/2024/q4/177