Apache CXF deserializuje treść przychodzących wiadomości JMS typu ObjectMessage przy użyciu natywnej deserializacji Javy bez jakichkolwiek ograniczeń typów. Atakujący mogący umieścić wiadomość w kolejce JMS usługi może wywołać zdalne wykonanie kodu (RCE) lub odmowę usługi (DoS).
▸ Pokaż oryginał (EN)
Apache CXF's JMS transport deserializes the body of any inbound JMS ObjectMessage using native Java deserialization, with no type restrictions in place. Any attacker able to place a message on the service's JMS destination can submit a malicious serialized object, leading to denial of service or, if a suitable gadget class is on the classpath, remote code execution. The fix disables ObjectMessage deserialization by default, with a configuration switch to re-enable it if needed. Users are recommended to upgrade to versions 4.2.3 or 4.1.8 or 3.6.12, which fix this issue.
Podatność (CWE-502) polega na tym, że warstwa transportowa JMS w Apache CXF automatycznie deserializuje każdy obiekt zawarty w wiadomości JMS ObjectMessage bez weryfikacji ani filtrowania typów. Atakujący, który ma dostęp do kolejki lub tematu JMS obsługiwanego przez podatną usługę, może przesłać spreparowany, złośliwy obiekt serializowany. Jeśli w classpath aplikacji znajduje się odpowiednia klasa typu 'gadget' (np. z popularnych bibliotek), deserializacja prowadzi do zdalnego wykonania dowolnego kodu. W przypadku braku odpowiednich klas gadget możliwe jest co najmniej wywołanie odmowy usługi.
Atakujący może uzyskać pełną kontrolę nad podatnym serwerem poprzez zdalne wykonanie kodu (RCE), a w mniej sprzyjających warunkach doprowadzić do odmowy usługi (DoS). Podatność pozwala na naruszenie poufności, integralności i dostępności systemu.
Należy zaktualizować Apache CXF do wersji 4.2.3, 4.1.8 lub 3.6.12, w których deserializacja ObjectMessage jest domyślnie wyłączona. Jeśli ponowne włączenie tej funkcji jest niezbędne, można skorzystać z dedykowanego przełącznika konfiguracyjnego — jednak jest to odradzane bez dodatkowych mechanizmów kontroli dostępu do kolejki JMS.
Apache CXF w wersjach wcześniejszych niż 4.2.3, 4.1.8 oraz 3.6.12, korzystających z transportu JMS z obsługą wiadomości ObjectMessage.
Poprawka wyłącza deserializację ObjectMessage domyślnie i wprowadza opcjonalny przełącznik konfiguracyjny umożliwiający jej ponowne włączenie w razie potrzeby.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Cxf
APPApache< 3.6.124.0.0 – 4.1.8 (bez)4.2.0 – 4.2.3 (bez)
Powiązane podatności
Apache CXF: pominięcie walidacji tokenów OIDC umożliwia authentication bypass
Apache CXF: wielokrotne użycie kodu autoryzacyjnego OAuth (CWE-294)
Apache CXF: brak walidacji scope w rejestracji klienta OAuth2
Apache CXF: podmiana parametrów PKCE i OIDC przez JWT w JwtRequestCodeFilter
Apache CXF: brak walidacji pola 'aud' w tokenach JWT — Token Confusion