CVE-2025-59947
KrytyczneStreszczenie
NanoMQ przed wersją 0.24.4 ma podatność na przepełnienie bufora, gdy pakiety PUBLISH wyzwalają zarówno subskrypcję współdzieloną, jak i zwykłą. Wersja 0.24.4 zawiera poprawkę.
Ocena ryzyka
Przepełnienie bufora może prowadzić do awarii brokera lub zdalnego wykonania kodu, co może zakłócić działanie systemów IoT i SDV.
Rekomendacja
Zaleca się aktualizację NanoMQ do wersji 0.24.4 lub nowszej. Jako obejście, wyłącz subskrypcję współdzieloną.
Inne podatności w NanoMQ
Zobacz wszystkie- CVE-2026-73863Wysokie
W brokerze MQTT NanoMQ w wersjach przed 0.24.14 funkcja nmq_subinfo_decode() ponownie używa długości zmiennej z zewnętrznego pola Properties Length podczas parsowania każdego identyfikatora subskrypcji. Zdalny klient może wysłać pakiet SUBSCRIBE z wielobajtową długością właściwości i powtórzonymi identyfikatorami subskrypcji, co powoduje odczyt poza buforem wiadomości na stercie. Podatność jest naprawiona w wersji 0.24.14.
- CVE-2026-61633Niskie
Podatność w NanoMQ przed wersją 0.24.14 dotyczy funkcji nni_mqtt_msg_decode_unsubscribe() w kliencie MQTT. Nieobsłużony błąd odczytu podczas liczenia tematów w nieprawidłowym pakiecie UNSUBSCRIBE może zawiesić klienta MQTT 3.1.1, zużywając CPU i pamięć, a przy włączonym automatycznym ponownym połączeniu wielokrotnie blokować usługę.
- CVE-2026-44639Niskie
NanoMQ, broker MQTT, w wersjach przed 0.24.14 posiada dekoder właściwości MQTT v5, który przy dodawaniu każdej właściwości przechodzi całą listę powiązaną, co prowadzi do złożoności O(N²). Zdalny, nieuwierzytelniony klient może wysłać pakiet PUBLISH lub SUBSCRIBE z wieloma właściwościami użytkownika, powodując nadmierne zużycie CPU i zawieszenie brokera.
- CVE-2026-47276Średnie
W NanoMQ w wersjach 0.24.11 i wcześniejszych, dereferencja wskaźnika NULL w funkcji `properties_parse()` umożliwia uwierzytelnionemu atakującemu spowodowanie awarii brokera NanoMQ poprzez wysłanie żądania POST do `/api/v4/mqtt/publish` z `user_properties` jako tablicą JSON zamiast obiektu JSON. Awaria występuje, ponieważ `strlen()` jest wywoływane na wskaźniku `item->string` o wartości NULL podczas iteracji po elementach tablicy.
- CVE-2026-47275Niskie
W nanomq w wersjach 0.24.11 i wcześniejszych wykryto błąd dereferencji wskaźnika NULL w funkcji nni_mqttv5_msg_decode_connect. Złośliwy broker MQTT może wysłać pojedynczy pakiet, który powoduje awarię łączącego się klienta NanoMQ MQTTv5 (w tym w trybie bridge) poprzez SIGSEGV. Problem wynika z użycia zmiennej 'prop' zamiast 'will_prop' podczas iteracji po właściwościach CONNECT. Jeśli pakiet CONNECT nie ma właściwości na poziomie połączenia (prop == NULL), ale ma właściwości will (will_prop != NULL), dereferencja prop->next powoduje SIGSEGV.
- CVE-2026-35217Średnie
NanoMQ zawiera wadę semantyki protokołu w obsłudze MQTT v5 SUBSCRIBE. Jeśli wpis subskrypcji brakuje końcowego 1-bajtowego pola Subscription Options, broker może zaakceptować uszkodzony pakiet i zainstalować subskrypcję w wewnętrznym stanie brokera. W określonych warunkach ta sama wada parsera powoduje również odczyt 1 bajtu poza granicami sterty, wykrywany przez ASAN jako przepełnienie bufora sterty.
- CVE-2026-36590Wysokie
W bibliotece NanoMQ w wersji 0.24.9 wykryto podatność umożliwiającą atakującemu zdalne wywołanie odmowy usługi (DoS) poprzez funkcję nni_qos_db_set w komponencie broker_tcp.c.
- CVE-2026-45151Niskie
W NanoMQ MQTT Broker w wersji 0.24.8 i wcześniejszych, funkcja quic_stream_recv może wyłuskać pusty wskaźnik substream, gdy substream jest w stanie reopen. Kod kończy AIO z błędem, ale nie zwraca przed zamknięciem c->mtx, co może prowadzić do awarii lub innych problemów.
- CVE-2026-44640Średnie
NanoMQ MQTT Broker przed wersją 0.24.14 zawiera podatność polegającą na pomyleniu typów (type confusion) podczas zamykania połączenia dialer. Prowadzi to do nieprawidłowej interpretacji obiektu i może skutkować zawieszeniem lub awarią.
- CVE-2026-32134Średnie
Podatność w NanoMQ MQTT Broker w wersjach 0.24.10 i niższych, polegająca na dereferencji wskaźnika NULL podczas obsługi ruchu o wysokiej współbieżności przy ponownym łączeniu. Prowadzi do awarii brokera (DoS) bez uwierzytelniania. Problem został naprawiony w wersji 0.24.11.
Oryginalny opis (angielski, źródło NVD)
NanoMQ is a messaging broker/bus for IoT Edge & SDV. Versions prior to 0.24.4 have a buffer overflow case while the PUBLISH packets trigger both shared subscription and vanila subscription. This is fixed in version 0.24.4. As a workaround, disable shared subscription.

