一旦用户在 Jolokia 上通过身份验证,他就有可能触发任意代码执行。
具体来说,在 ActiveMQ 配置中,jetty 允许 org.jolokia.http.AgentServlet 处理对 /api/jolokia 的请求
org.jolokia.http.HttpRequestHandler#handlePostRequest 能够通过 JSONObject 创建 JmxRequest。并调用 org.jolokia.http.HttpRequestHandler#executeRequest。
进入更深的调用栈,org.jolokia.handler.ExecHandler#doHandleRequest 可以通过反射来调用。
然后,可以通过Java 11以上版本上存在的jdk.management.jfr.FlightRecorderMXBeanImpl来实现RCE。
1 调用 newRecording.
2 调用setConfiguration。其中隐藏着一个webshell数据。
3 调用开始录音。
4 调用copyTo方法。Webshell 将写入 .jsp 文件。
缓解措施是限制(默认情况下)Jolokia 上授权的操作,或禁用 Jolokia。
默认 ActiveMQ 发行版中定义了更具限制性的 Jolokia 配置。我们鼓励用户升级到 ActiveMQ 发行版本,包括更新的 Jolokia 配置:5.16.6、5.17.4、5.18.0、6.0.0。
@Y4tacker已复现:
https://twitter.com/Y4tacker/status/1729798585657463276
https://nvd.nist.gov/vuln/detail/CVE-2022-41678
https://activemq.apache.org/security-advisories.data/CVE-2022-41678-announcement.txt
https://lists.apache.org/thread/7g17kwbtjl011mm4tr8bn1vnoq9wh4sl
http://www.openwall.com/lists/oss-security/2023/11/28/1
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里