聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
Apache MINA 因供端口如TCP/IP和UDP/IP等简化网络编程的抽象的事件驱动异步API而为人所知,它广泛用于多种应用中。然而,ObjectSerializationDecoder 组件中的漏洞可遭恶意利用。该解码器通过Java的原生反序列化来处理序列化数据,缺乏重要的安全检查。
该问题的根因在于易受攻击的MINA版本处理对象反序列化的方式。如果没有正确的防御措施,攻击者可发送特殊构造的恶意序列化数据,而当该数据由 ObjectSerializationDecoder 处理时,可导致远程代码执行 (RCE) 后果。这意味着攻击者可能完全控制受影响系统。
该漏洞影响大量 Apache MINA 版本,尤其是:
-
Apache MINA 2.0.0至2.0.26
-
Apache MINA 2.1.0至2.1.9
-
Apache MINA 2.2.0至2.2.3
值得注意的是,并非所有使用MINA的应用都自动易受攻击。当应用使用 IoBuffer#getObject() 方法时就会引发风险。当使用 ObjectSerializationCodecFactory 类的 ProtocolCodecFilter 实例被加入过滤器链时,该方法可能会被调用。如果应用程序依赖于这些特定的类和方法,则用户可能遭暴露且必须立即采取措施。
Apache MINA 团队已迅速修复了该严重漏洞。如下为已修复版本:
-
Apache MINA 2.0.27
-
Apache MINA 2.1.10
-
Apache MINA 2.2.4
不过,只升级版本是不够的。已更新版本引入了一个重要的安全增强措施:开发人员必须明确定义 ObjectSerializationDecoder 允许序列化的类。可通过如下三个新方法实现:
-
accept(ClassNameMatcher classNameMatcher)
-
accept(Pattern pattern)
-
accept(String… patterns)
在默认情况下,该解码器将拒绝所有类,主要是以“拒绝所有”原则为准,除非已获得明确允许。这就增加了一个重要的控制层,组织不可信和潜在恶意对象的反序列化。
Apache MINA 团队已澄清指出,FtpServer、SSHd和Vysper 子项目并不受该漏洞影响。
原文始发于微信公众号(代码卫士):Apache MINA 存在严重的满分漏洞,可导致RCE
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论