Severity: Medium

Affected versions:

- Apache ActiveMQ before 5.16.6
- Apache ActiveMQ 5.17.0 before 5.17.4
- Apache ActiveMQ 5.18.0 unaffected
- Apache ActiveMQ 6.0.0 unaffected

Description:

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 is able to invoke
through refection.

And then, RCE is able to be achieved via
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.

This issue is being tracked as AMQ-9201 

Credit:

wang...@threatbook.cn (finder)
wangzhend...@threatbook.cn (finder)
honglongl...@threatbook.cn (finder)

References:

https://activemq.apache.org/
https://www.cve.org/CVERecord?id=CVE-2022-41678
https://issues.apache.org/jira/browse/AMQ-9201

Reply via email to