Regresja w kodzie Apache ActiveMQ powoduje, że serwer RMIConnectorServer jest uruchamiany z pustą mapą środowiskową zamiast z danymi uwierzytelniającymi, co skutkuje otwarciem interfejsu JMX bez uwierzytelnienia. Umożliwia to zdalnemu, nieuwierzytelnionemu atakującemu wykonanie dowolnego kodu na serwerze (RCE).
▸ Pokaż oryginał (EN)
A regression has been introduced in the commit preventing JMX re-bind. By passing an empty environment map to RMIConnectorServer, instead of the map that contains the authentication credentials, it leaves ActiveMQ open to the following attack: https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html "A remote client could create a javax.management.loading.MLet MBean and use it to create new MBeans from arbitrary URLs, at least if there is no security manager. In other words, a rogue remote client could make your Java application execute arbitrary code." Mitigation: Upgrade to Apache ActiveMQ 5.15.13
Błędna zmiana w kodzie (commit) zapobiegający ponownemu wiązaniu JMX spowodowała przekazanie pustej mapy do RMIConnectorServer zamiast mapy zawierającej dane uwierzytelniające. Pozbawiony ochrony interfejs JMX/RMI pozwala zdalnemu klientowi na utworzenie obiektu MBean typu javax.management.loading.MLet, a następnie załadowanie i wykonanie nowych klas MBean z dowolnych adresów URL. Atak jest możliwy w każdym środowisku pozbawionym security managera, co jest typową konfiguracją wielu wdrożeń.
Nieuwierzytelniony zdalny atakujący może doprowadzić do wykonania dowolnego kodu na serwerze, co skutkuje pełnym przejęciem kontroli nad aplikacją oraz potencjalnie całym systemem — naruszeniem poufności, integralności i dostępności danych.
Należy niezwłocznie zaktualizować Apache ActiveMQ do wersji 5.15.13 lub nowszej. Użytkownicy produktów Oracle powinni zastosować patche dostępne u producenta zgodnie z referencjami (Oracle CPU April 2021 / July 2021).
Apache ActiveMQ w wersjach poprzedzających 5.15.13; podatność dotyczy również produktów Oracle: Communications Diameter Signaling Router, Communications Element Manager, Communications Session Report Manager, Communications Session Route Manager (wersje wskazane w referencjach producenta Oracle)
Podatność jest wynikiem regresji (błędnej zmiany w kodzie), nie pierwotnego błędu projektowego. Mechanizm ataku jest szczegółowo opisany w oficjalnej dokumentacji Oracle JMX (https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Activemq
APPApache5.15.12Oracle Communications Diameter Signaling Router
APPOracle8.0.0 – 8.5.0Oracle Communications Element Manager
APPOracle8.2.0 – 8.2.4.0Oracle Communications Session Report Manager
APPOracle8.0.0 – 8.2.2Oracle Communications Session Route Manager
APPOracle8.0.0 – 8.2.2Oracle Enterprise Repository
APPOracle11.1.1.7.0Oracle Flexcube Private Banking
APPOracle12.0.012.1.0
Powiązane podatności
Apache ActiveMQ — RCE przez podatny marshaller protokołu OpenWire
Apache Tomcat AJP Connector — odczyt plików i RCE (Ghostcat)
RCE przez deserializację w Oracle Coherence via protokół T3
RCE w PHPUnit — wykonanie kodu PHP przez eval-stdin.php
Apache ActiveMQ Fileserver — upload i zdalne wykonanie kodu przez HTTP PUT/MOVE