[CVE-2023-44604]:Apache ActiveMQ OpenWire 协议远程代码执行漏洞

基础介绍

公开时间
2023-10-25
影响范围
万级
影响版本
Apache ActiveMQ < 5.18.3
Apache ActiveMQ < 5.17.6
Apache ActiveMQ < 5.16.7
Apache ActiveMQ < 5.15.16
影响组件
ActiveMQ(用Java编写)是一个由Apache开发的开源协议,它实现了面向消息的中间件(MOM)。它的主要功能是在不同的应用程序之间发送消息,还包括STOMP、Jakarta Messaging (JMS)和OpenWire等附加特性。
漏洞描述
Java OpenWire协议编组器容易受到远程代码执行的攻击。此漏洞可能允许通过网络访问基于Java的OpenWire代理或客户端的远程攻击者,通过操纵OpenWire协议中的序列化类类型来运行任意shell命令,导致客户端或代理(分别)实例化上的任何类。建议用户将经纪商和客户端升级到版本5.15.16、5.16.7、5.17.6或5.18.3以解决此问题。

FOFA

app=“APACHE-ActiveMQ”
Apache ActiveMQ服务器TCP端口默认为61616。

POC

https://github.com/X1r0z/ActiveMQ-RCE

漏洞分析

Apache ActiveMQ OpenWire协议远程代码执行漏洞与OpenWire命令解组时可抛出类类型验证有关。

OpenWire是一种二进制协议,专门设计用于处理面向消息的中间件。它充当ActiveMQ的本机连接格式,ActiveMQ是一个广泛使用的开源消息传递和集成平台,与其他格式相比,OpenWire的二进制格式提供了几个优势,比如它对带宽的有效利用以及支持多种消息类型的能力。这些特性使其成为需要可靠和高性能消息传递系统的企业和组织的理想选择。

基于补丁差异,我们可以看到validateIsThrowable方法已经包含在BaseDataStreamMarshall类中。
在这里插入图片描述
当编组器无法验证Throwable (Java中表示异常和错误的对象)的类类型时,它可能会意外地创建并执行任何类的实例。这将导致RCE漏洞允许攻击者在服务器或应用程序上执行任意代码。因此,必须确保始终验证Throwable的类类型,以防止潜在的安全风险。
在这里插入图片描述

JAVA漏洞分析流程

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值