CVE-2022-41678: Deserialization of Untrusted Data
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.
References
- www.openwall.com/lists/oss-security/2023/11/28/1
- activemq.apache.org/security-advisories.data/CVE-2022-41678-announcement.txt
- github.com/advisories/GHSA-53v4-42fg-g287
- github.com/apache/activemq/commit/6120169e563b55323352431dfe9ac67a8b4de6c2
- github.com/apache/activemq/pull/958
- lists.apache.org/thread/7g17kwbtjl011mm4tr8bn1vnoq9wh4sl
- nvd.nist.gov/vuln/detail/CVE-2022-41678
Detect and mitigate CVE-2022-41678 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →