RabbitMQ Java CVE-2026-106121: niepełny JSON może zatrzymać usługę RPC
Błąd dotyczy domyślnego mappera JSON-RPC w kliencie Java RabbitMQ. Sprawdź używaną ścieżkę parsowania, wydanie 5.37.0 i uprawnienia do kolejek.
- AUTOR
- Karol Rapacz / CEO Breachroad · OSCP · PNPT
- PUBLIKACJA
- 8 października 2026
- CZAS CZYTANIA
- 5 min czytania
- TEMAT
- Chmura, infrastruktura i DevSecOps
CVE-2026-106121, opublikowany 6 października, opisuje odmowę usługi w parserze JSON klienta Java RabbitMQ. Niekompletny tekst może wyczerpać pamięć sterty albo pozostawić wątek zużywający CPU bez końca. Opis rekordu wskazuje poprawkę w 5.37.0.
Rekomendacja Breachroad na dziś: ustal, czy aplikacje korzystają z narzędzi JSON-RPC-over-AMQP i domyślnego mappera. Sama obecność RabbitMQ w infrastrukturze nie potwierdza używania podatnej ścieżki. Właściciel aplikacji powinien ocenić zależność po stronie klienta, a administrator kolejki dostęp do komunikatów.
Zakres jest węższy niż wszystkie wdrożenia RabbitMQ
Biuletyn projektu wymienia com.rabbitmq:amqp-client do wersji 5.36.0 włącznie. Problem dotyczy com.rabbitmq.tools.jsonrpc z DefaultJsonRpcMapper, używanym także wtedy, gdy nie przekazano własnego mappera. Atakujący musi dostarczyć wiadomość do kolejki żądań RPC lub kontrolować odpowiedź usługi RPC dla klienta.
Nasza propozycja dla dewelopera: sprawdź konstrukcję klienta i serwera RPC oraz wybrany mapper w kodzie i konfiguracji. Nie zakładaj, że brak jawnej nazwy mappera oznacza brak jego użycia. Ustal również, które wdrożenia współdzielą ten sam artefakt aplikacji i gdzie można potwierdzić załadowaną wersję biblioteki.
Wynik przeglądu powinien łączyć nazwę usługi, zależność, ścieżkę parsowania i osobę odpowiedzialną. Jeżeli aplikacja nie używa objętych biuletynem narzędzi, zapisz podstawę tej oceny. Jeśli używa, uwzględnij ją w planie aktualizacji wraz z odbiorcą biznesowym, który potrzebuje ciągłości pracy.
Oprzyj wybór poprawki na wydaniu projektu
Wydanie 5.37.0, dostępne od 1 października, obejmuje poprawkę przestarzałego czytnika JSON. Jest także wersją wskazaną w biuletynie projektu. To nasz punkt odniesienia przy planowaniu aktualizacji; inną kompilację oceniaj na podstawie potwierdzenia dostawcy, że zawiera tę zmianę.
Zalecamy sprawdzić artefakt wdrożony w usłudze, a następnie uruchomione repliki. Aktualizacja pliku z deklaracją zależności nie jest dowodem, że produkcja korzysta już z poprawionej biblioteki. Zachowaj identyfikator wydania i wynik sprawdzenia razem z zadaniem aktualizacyjnym.
Przy planowaniu zmiany uwzględnij zgodność obsługiwanych komunikatów oraz zachowanie aplikacji po odrzuceniu błędnych danych. Zespół powinien wiedzieć, kto decyduje o ponowieniu zadania, jak wykrywa niepowodzenie i kiedy eskaluje brak odpowiedzi. Te decyzje pomagają uniknąć niekontrolowanego ponawiania pracy po awarii.
Ogranicz nadawców i obserwuj odbiorców
Breachroad proponuje przejrzeć uprawnienia do publikowania w kolejkach RPC oraz tożsamości usług wysyłających odpowiedzi. Każdy nadawca powinien mieć uzasadniony zakres dostępu. Ustal też właściciela uprawnień, które pozostały po wycofanej integracji lub dawnym środowisku testowym.
W monitoringu połącz obserwację pamięci i CPU z postępem odbierania komunikatów. Brak postępu, narastające zaległości oraz powtarzające się restarty wymagają wyjaśnienia. Są sygnałami operacyjnymi, a nie samodzielnym dowodem wykorzystania tego CVE. Zachowaj dane potrzebne do odróżnienia wadliwego wejścia od problemu pojemnościowego.
Limity czasu, rozmiaru i liczby żądań warto ocenić jako element odporności usługi. Nie przedstawiamy ich jako zamiennika poprawki parsera: przegląd dostępności musi obejmować także to, co dzieje się po przyjęciu komunikatu.
Przykład dla zespołu utrzymania
Wyobraźmy sobie usługę rozliczeń wywoływaną przez wewnętrzne RPC. W przykładowym procesie deweloper potwierdza użycie domyślnego mappera, administrator sprawdza nadawców, a właściciel usługi planuje aktualizację i kontrolę zachowania po błędnym wejściu. Zespół dokumentuje wynik, zamiast kończyć pracę na informacji o zaktualizowanej kolejce.
To przykład Breachroad, nie opis incydentu. Na szkoleniu cyberbezpieczeństwa dla organizacji możemy przećwiczyć z zespołami IT ocenę zakresu podatności, odpowiedzialność za zależności i zgłaszanie problemów z dostępnością usług.

