漏洞描述
Apache MINA 中的 ObjectSerializationDecoder 使用 Java 的原生反序列化协议来处理传入的序列化数据,但缺乏必要的安全检查和防御。
此漏洞允许攻击者通过发送特制的恶意序列化数据来利用反序列化过程,从而可能导致远程代码执行 (RCE) 攻击。
漏洞评分
CVSS 评分为 10.0
影响范围
-
从 2.1 到 2.1.9 受到影响 -
从 2.2 到 2.2.3 受到影响 -
从 2.0 到 2.0.26 未知
此问题影响 MINA 核心版本 2.0.X、2.1.X 和 2.2.X,并将在版本 2.0.27、2.1.10 和 2.2.4 中修复。
同样需要注意的是,使用 MINA 核心库的应用程序只有在调用 IoBuffer#getObject() 方法时才会受到影响,并且当使用 ObjectSerializationCodecFactory 类在过滤器链中添加 ProtocolCodecFilter 实例时可能会调用此特定方法。如果您的应用程序专门使用这些类,则必须升级到最新版本的 MINA 核心库。
修复建议
强烈建议使用这些产品的用户尽快将其安装更新到最新版本,以防范潜在威胁。
升级是不够的:
您还需要使用以下三种新方法之一明确允许解码器在 ObjectSerializationDecoder 实例中接受的类:
/**
* 接受与提供的 ClassNameMatcher 匹配的类名以进行
反序列化,除非它们被拒绝。
*
* @param classNameMatcher 要使用的匹配器
*/
publicvoidaccept(ClassNameMatcher classNameMatcher)
/**
* 接受与提供的模式匹配的类名以进行
反序列化,除非它们被拒绝。
*
* @param pattern 标准 Java 正则表达式
*/
publicvoidaccept(Pattern pattern)
/**
* 接受通配符指定的类进行反序列化,
* 除非它们被拒绝。
*
* @param patterns 通配符文件名模式由
* {@link org.apache.commons.io.FilenameUtils#wildcardMatch(String, String) FilenameUtils.wildcardMatch}
*/
publicvoidaccept(String... patterns)
默认情况下,解码器将拒绝传入数据中存在的 *所有* 类。
原文始发于微信公众号(云梦安全):CVE-2024-52046 Apache MINA反序列化漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论