Once an user is authenticated on Jolokia, he can potentially trigger arbitrary code execution.
In details, in ActiveMQ configurations, jetty allows org.jolokia.http.AgentServlet to handler request to /api/jolokia
org.jolokia.http.HttpRequestHandler#handlePostRequest is able to create JmxRequest through JSONObject. And calls to org.jolokia.http.HttpRequestHandler#executeRequest.
Into deeper calling stacks, org.jolokia.handler.ExecHandler#doHandleRequest can be invoked through refection. This could lead to RCE through via various mbeans. One example is unrestricted deserialization in jdk.management.jfr.FlightRecorderMXBeanImpl which exists on Java version above 11.
1 Call newRecording.
2 Call setConfiguration. And a webshell data hides in it.
3 Call startRecording.
4 Call copyTo method. The webshell will be written to a .jsp file.
The mitigation is to restrict (by default) the actions authorized on Jolokia, or disable Jolokia. A more restrictive Jolokia configuration has been defined in default ActiveMQ distribution. We encourage users to upgrade to ActiveMQ distributions version including updated Jolokia configuration: 5.16.6, 5.17.4, 5.18.0, 6.0.0.
When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Activemq | Apache | * | 5.16.6 (excluding) |
Activemq | Apache | 5.17.0 (including) | 5.17.4 (excluding) |
Red Hat AMQ Broker 7 | RedHat | * | |
Red Hat Fuse 7.13.0 | RedHat | activemq | * |
RHEL-8 based Middleware Containers | RedHat | amq7/amq-broker-init-rhel8:7.12.0-7 | * |
RHEL-8 based Middleware Containers | RedHat | amq7/amq-broker-rhel8:7.12.0-7 | * |
RHEL-8 based Middleware Containers | RedHat | amq7/amq-broker-rhel8-operator-bundle:7.12.0-10 | * |
Activemq | Ubuntu | bionic | * |
Activemq | Ubuntu | esm-apps/bionic | * |
Activemq | Ubuntu | esm-apps/focal | * |
Activemq | Ubuntu | esm-apps/xenial | * |
Activemq | Ubuntu | focal | * |
Activemq | Ubuntu | jammy | * |
Activemq | Ubuntu | lunar | * |
Activemq | Ubuntu | mantic | * |
Activemq | Ubuntu | trusty | * |
Activemq | Ubuntu | upstream | * |
Activemq | Ubuntu | xenial | * |