目录导航
漏洞描述
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 要使用的匹配器
*/
public void accept(ClassNameMatcher classNameMatcher)
/**
* 接受与提供的模式匹配的类名以进行
反序列化,除非它们被拒绝。
*
* @param pattern 标准 Java 正则表达式
*/
public void accept(Pattern pattern)
/**
* 接受通配符指定的类进行反序列化,
* 除非它们被拒绝。
*
* @param patterns 通配符文件名模式由
* {@link org.apache.commons.io.FilenameUtils#wildcardMatch(String, String) FilenameUtils.wildcardMatch}
*/
public void accept(String... patterns)
默认情况下,解码器将拒绝传入数据中存在的 *所有* 类。
注意:FtpServer、SSHd 和 Vysper 子项目不受此问题影响。
https://lists.apache.org/thread/4wxktgjpggdbto15d515wdctohb0qmv8
转载请注明出处及链接