26 października 2026 roku CERT Polska opublikował opis 11 podatności w produktach boneIO, od CVE-2026-77052 do CVE-2026-77062. Dotyczą oprogramowania sterownika boneIO Black i obrazu systemu black_debian_images, a producent usunął je w wersji 1.6.0. Luki zgłosił Mateusz Włodarczak (s3ga), a CERT Polska koordynował ich ujawnienie. W komunikacie nie ma mowy o atakach wykorzystujących te błędy.
boneIO Black steruje przekaźnikami, roletami i bramami, więc w najgorszym razie nie kończy się na wycieku hasła. Napastnik może coś fizycznie włączyć albo otworzyć.
Najpoważniejsze luki
- CVE-2026-77052: pod adresem
/nodered/, za odwrotnym serwerem pośredniczącym Caddy, działa Node-RED bez żadnego logowania. Przez jego interfejs administracyjny można wdrożyć przepływ, który wykonuje polecenia systemowe, więc każdy w sieci lokalnej może przejąć sterownik. Dotyczy wersji od 1.3.0. - CVE-2026-77053: uwierzytelnianie jest domyślnie wyłączone, a API do zarządzania nasłuchuje na wszystkich interfejsach sieciowych. Bez hasła da się zmienić konfigurację, zablokować urządzenie i przełączać podłączone obwody.
- CVE-2026-77054: hasła, także do brokera MQTT i panelu WWW, są zapisane otwartym tekstem, a zapytanie
GET /api/configje zwraca. Razem z poprzednią luką oznacza to, że może je odczytać każdy w tej samej sieci. - CVE-2026-77056: dołączony broker Mosquitto ma na wszystkich urządzeniach te same domyślne dane logowania, opublikowane na GitHubie. Kto je zna, czyta i zapisuje wszystkie tematy, steruje przekaźnikami, roletami i bramami, a do połączonego Home Assistanta może podrzucić fałszywe encje.
- CVE-2026-77055 i CVE-2026-77059: konto usługi
boneiomiało sudo bez hasła i należało do grupy docker, a w pomocniczej funkcji od strefy czasowej był błąd wyścigu (TOCTOU), przez który dało się dopisać własne reguły sudoers. Przez obie luki lokalny napastnik może zdobyć uprawnienia roota.
Pozostałe dotyczą pliku /etc/mosquitto/passwd, który każdy w systemie może odczytać (77060), braku limitu prób logowania do panelu i przez SSH (77057), braku ochrony przed CSRF (77058), punktów API, które bez logowania zdradzają dzienniki, wersję oprogramowania, numer seryjny i nazwę użytkownika MQTT (77061), oraz braku ochrony przed przechwytywaniem kliknięć, czyli clickjackingiem (77062). Ponieważ logowanie było domyślnie wyłączone, luki CSRF i przechwytywania kliknięć mógł uruchomić każdy w sieci domowej, kto wszedł na złośliwą stronę.
Co zmienia wersja 1.6.0
- Urządzenie bez konta administratora odrzuca zapytania do API, dopóki właściciel nie założy go w kreatorze pierwszego uruchomienia, a każdy punkt API wymaga zalogowania.
- Hasła do panelu są zapisywane jako solone skróty scrypt, a API i dzienniki nie zwracają już żadnych sekretów.
- Hasła MQTT są generowane osobno dla każdego urządzenia przy pierwszym uruchomieniu. Zaktualizowane sterowniki zachowują stare dane logowania do brokera, ale panel ostrzega, jeśli to wciąż opublikowane wartości domyślne. Zmienić je trzeba samemu.
- Reguła sudoers i członkostwo w grupie docker znikają, a uprzywilejowane operacje przechodzą przez pomocnicze programy z zamkniętą listą poleceń.
- Logowanie przez WWW ma limit prób, hasło do panelu musi mieć co najmniej 8 znaków, a SSH daje trzy próby na połączenie.
Wersje starsze niż 1.2.0 działają na Debianie 10, nie są już wspierane i nie da się ich zaktualizować na miejscu. Na takie urządzenia trzeba od nowa wgrać obraz 1.6.0.
Co zrobić teraz
Zaktualizuj sterownik do 1.6.0, załóż konto administratora i zmień hasło MQTT, jeśli panel je oznaczy. Do tego czasu trzymaj sterownik w osobnym segmencie sieci, do którego nie mają dostępu goście ani zwykłe urządzenia, i nie wystawiaj do internetu portu 8443 ani brokera. Jeśli broker współpracuje z Home Assistantem, wpisz potem nowe hasło w integracji MQTT.