OpenWire Module: Unbounded deserialization causes ActiveMQ to be vulnerable to a remote code execution (RCE) attack
CVE: CVE-2023-46604
Component: activemq-openwire
CWE: CWE-502
Severity: Critical
CVSS v3: 9.8/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Release date: 2023-10-27T00:00:00+00:00

A flaw was found in Apache ActiveMQ, specifically the OpenWire Module. This flaw may allow a remote malicious user to run arbitrary shell commands by manipulating serialized class types in the OpenWire protocol, causing the broker to instantiate any class on the classpath. This issue happens when OpenWire commands are unmarshalled, without validating the provided throwable class type, which could allow an attacker to jeopardize the entire server.

Statement: If the openwire protocol IS NOT in use, system operators can disable the OpenWire protocol which removes most risk of this vulnerability being exploited. If OpenWire IS being used, see the Mitigations section for potential options to reduce your attack surface.


* How to determine if an AMQ 7 system is affected:
Check in the broker.xml configuration file. Notice the presence of **OPENWIRE** in the following snippet which indicates a vulnerable configuration. 
~~~
<acceptor name="artemis">tcp://localhost:####?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,**OPENWIRE**;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;anycastPrefix=jms.queue.;multicastPrefix=jms.topic.</acceptor>
~~~


* How to determine if an AMQ 7 for OpenShift system is affected:
Get the `ActivemqArtemis` CR yaml and review the acceptor protocol and see if the following entry is present: `(default, all, Openwire)` which indicates the system is vulnerable.


* How to determine if a Fuse 6 system is affected:
By default Fuse 6 includes and enables ActiveMQ Broker. So unless this has been manually disabled, every Fuse 6 system is affected by this vulnerability.


* How to determine if a Fuse 7 system is affected:
Fuse 7 itself is not vulnerable. By default it ships the vulnerable activemq-client jar, however it does not instantiate an ActiveMQ broker. If this feature (connect to an external ActiveMQ Broker) were manually configured, it would make it vulnerable.


* How to determine if a Fuse Online system is affected:
Syndesis,  an Integration Platform As A Service part of Fuse Online which runs on top of Openshift, does not use activemq code. Also, it doesn't instantiate a broker with Openwire protocol enabled, which makes it not vulnerable to this CVE.

Remediation:
The RHEL-7 based Middleware Containers container image provided by this update can be downloaded from the Red Hat Container Registry at registry.access.redhat.com. Installation instructions for your platform are available at Red Hat Container Catalog (see References).

Dockerfiles and scripts should be amended either to refer to this new image specifically, or to the latest image generally.
The RHEL-7 based Middleware Containers container image provided by this update can be downloaded from the Red Hat Container Registry at registry.access.redhat.com. Installation instructions for your platform are available at Red Hat Container Catalog (see References).

Dockerfiles and scripts should be amended either to refer to this new image specifically, or to the latest image generally.
Before applying the update, back up your existing installation, including all applications, configuration files, databases and database settings.

The References section of this erratum contains a download link (you must log in to download the update).
Before applying the update, back up your existing installation, including all applications, configuration files, databases and database settings.

The References section of this erratum contains a download link (you must log in to download the update).
Before applying the update, back up your existing installation, including all applications, configuration files, databases and database settings, and so on.

The References section of this erratum contains a download link (you must log in to download the update).
Before applying the update, back up your existing installation, including all applications, configuration files, databases and database settings, and so on.

Installation instructions are located in the download section of the customer portal.

The References section of this erratum contains a download link (you must log in to download the update).
In affected systems, it may be possible to mitigate some of the risks from this vulnerability. However this mitigation cannot eliminate all risks; the only complete resolution is to apply software updates. On systems where the broker is exposed to the public network, use firewall rules to restrict the transport ports and enable SSL to protect this "Transport".