Podatność w oprogramowaniu Meshtastic (open source mesh networking) pozwala, aby pojedynczy węzeł z nieprawidłowo zakodowaną nazwą (User.long_name) uniemożliwił zarządzanie innymi urządzeniami przez BLE w aplikacji iOS. Problem może wystąpić naturalnie — bez celowego ataku — i prowadzi do utraty kontroli nad urządzeniami radiowymi na rozległym obszarze geograficznym.
▸ Pokaż oryginał (EN)
Meshtastic is an open source mesh networking solution. Prior to version 2.7.23.b246bcd, a single node advertising a User.long_name that contains a malformed character encoding can render other radios unusable over BLE when managed through the iOS app. The malformed name does not need to be maliciously crafted — it can arise from ordinary buffer truncation and has been observed occurring naturally in the wild. At least one code path could place a null terminator in the middle of a multibyte sequence, leaving a malformed User.long_name in the node database. The problem surfaced downstream: the iOS app enforced encoding validation and therefore cannot parse a node database once it contains a poisoned entry. This caused BLE sync to enter a fail/retry loop, resulting in loss of control over the affected device. For a typical user managing their radio with the iOS app, the device becomes effectively unusable until the poisoned node ages out of the on-device database, or unless they have an alternate management path (e.g., the Python CLI, which can be used to identify and remove the offending entries manually). Because the malformed name propagates through the mesh, the temporary presence of a single affected node can degrade BLE management for iOS users across a wide geographical area for an extended period. Less technical users have no straightforward recovery path. Starting in version 2.7.23.b246bcd, the firmware has added input sanitization and regression tests demonstrating recovery for already-poisoned devices. The apps have also taken steps to ensure more graceful handling of malformed encoding sequences as well.
W pewnych ścieżkach kodu może dojść do umieszczenia znaku null w środku sekwencji wielobajtowej, co pozostawia w bazie danych węzłów nieprawidłową wartość User.long_name. Aplikacja iOS wymusza walidację kodowania, przez co nie jest w stanie przetworzyć bazy danych zawierającej taki błędny wpis. Skutkuje to wejściem synchronizacji BLE w nieskończoną pętlę błędów i ponownych prób, uniemożliwiając zarządzanie urządzeniem. Ponieważ skażona nazwa propaguje się przez sieć mesh, jeden problematyczny węzeł może zdegradować działanie aplikacji iOS dla wielu użytkowników na dużym obszarze i przez długi czas.
Atakujący (lub nieświadomie dotknięty użytkownik) może doprowadzić do trwałej utraty możliwości zarządzania urządzeniami radiowymi Meshtastic przez BLE z aplikacji iOS, co stanowi atak typu DoS (Denial of Service) na infrastrukturę mesh. Mniej techniczni użytkownicy nie mają prostej ścieżki odtworzenia sprawności urządzenia.
Należy zaktualizować firmware Meshtastic do wersji 2.7.23.b246bcd lub nowszej, która wprowadza sanityzację danych wejściowych oraz testy regresyjne umożliwiające odtworzenie urządzeń z już skażonymi wpisami. Aplikacje mobilne zostały również zaktualizowane w celu bardziej odpornej obsługi nieprawidłowych sekwencji kodowania. Do czasu aktualizacji możliwe jest ręczne usunięcie problematycznych wpisów za pomocą Python CLI.
Oprogramowanie Meshtastic firmware we wszystkich wersjach przed 2.7.23.b246bcd w połączeniu z aplikacją iOS zarządzającą urządzeniami przez BLE
Zgodnie z opisem, problem był obserwowany naturalnie w środowisku produkcyjnym (occurring naturally in the wild) bez potrzeby celowego przygotowania złośliwego payload. Podatność dotyczy zarówno firmware urządzeń, jak i aplikacji iOS — obie warstwy wymagają aktualizacji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HMeshtastic Firmware
OSMeshtastic≤ 2.7.22
Powiązane podatności
Meshtastic Firmware: pominięcie uwierzytelnienia przez podmianę klucza publicznego
Meshtastic Firmware: słaba entropia i duplikacja kluczy kryptograficznych
RCE przez buffer overflow w obsłudze pakietów protobuf w Meshtastic Firmware
Meshtastic is an open source mesh networking solution. In the current Meshtastic architecture, a Node is ident...
Meshtastic is an open source, off-grid, decentralized, mesh network. Meshtastic uses MQTT to communicate over ...