Haiwell CVE-2026-19188: nieuwierzytelnione RCE z prawami root w bramie HMI
Funkcja Net Check przyjmuje polecenia przez Socket.io i wykonuje je jako root. Wyjaśniamy ryzyko dla OT, aktualizację do 3.50.1.19 i segmentację.
- AUTOR
- Karol Rapacz / CEO Breachroad · OSCP · PNPT
- PUBLIKACJA
- 14 sierpnia 2026
- CZAS CZYTANIA
- 15 min czytania
- TEMAT
- Chmura, infrastruktura i DevSecOps
14 sierpnia 2026 roku CISA opublikowała ostrzeżenie ICSA-26-225-02 dotyczące CVE-2026-19188 w Haiwell IoT Cloud HMI Gateway. Wersja 3.40.1.12 pozwala zdalnemu, nieuwierzytelnionemu użytkownikowi wstrzyknąć polecenie systemowe przez funkcję Net Check w panelu /setting. Dane przesłane zdarzeniem Socket.io cmdPing trafiają do systemu operacyjnego bez wystarczającej neutralizacji, a proces wykonuje je z prawami root.
CISA ocenia podatność na 10,0 zarówno w CVSS 4.0, jak i CVSS 3.1. Producent wskazuje wersję 3.50.1.19 jako wolną od problemu. W chwili publikacji ocena SSVC nie potwierdzała znanej eksploatacji, lecz uznawała atak za automatyzowalny i o całkowitym wpływie technicznym. To rozróżnienie jest ważne: brak dowodów kampanii nie zmniejsza krytyczności mechanizmu, który prowadzi bezpośrednio do root RCE.
Jak funkcja diagnostyczna staje się powłoką
Net Check ma umożliwiać operatorowi sprawdzenie łączności z wybranym hostem. Tego typu funkcja zwykle wywołuje narzędzie systemowe, takie jak ping, i przekazuje mu adres podany w interfejsie. Jeśli aplikacja skleja tekstową komendę i uruchamia ją przez powłokę, metaznaki mogą zakończyć oczekiwany argument i dodać następne polecenie.
W opisanym przepływie wejście dociera zdarzeniem cmdPing przez Socket.io. Websocketowa lub zdarzeniowa forma transportu nie zapewnia automatycznej ochrony. Dane nadal są kontrolowane przez klienta, a serwer musi zweryfikować format i wywołać proces bez pośrednictwa powłoki. Najbezpieczniejszy wzorzec to stała ścieżka programu i tablica argumentów po walidacji adresu IP lub nazwy hosta.
Drugi krytyczny element to brak uwierzytelnienia. Napastnik nie musi przejmować konta operatora ani wykorzystywać słabego hasła. Jeżeli interfejs jest osiągalny, może bezpośrednio wywołać podatną funkcję. Trzeci element to kontekst root. Nawet prosty błąd w panelu administracyjnym staje się pełnym przejęciem urządzenia, gdy proces ma nieograniczone prawa.
Łańcuch można więc zapisać jako dostęp sieciowy → zdarzenie cmdPing → interpretacja przez powłokę → polecenie jako root. Każda warstwa powinna ograniczać kolejną: segmentacja utrudnia dostęp, uwierzytelnienie kontroluje podmiot, bezpieczne API procesu usuwa injection, a least privilege zmniejsza skutek. Tutaj nieskuteczne są wszystkie cztery bariery.
Dlaczego brama HMI ma duży blast radius
Brama HMI znajduje się na granicy między operatorem, usługą chmurową i urządzeniami przemysłowymi. Może widzieć adresację OT, protokoły sterowania, konfiguracje połączeń i dane procesowe. Przejęcie nie musi oznaczać natychmiastowej manipulacji procesem, aby było poważne. Urządzenie może zostać wykorzystane do rozpoznania sieci, przechwytywania ruchu, utrzymania dostępu lub atakowania kolejnych systemów.
CISA wymienia zastosowania w produkcji krytycznej, energetyce oraz sektorze wodno-kanalizacyjnym, a produkt jest używany globalnie. W tych środowiskach dostępność i bezpieczeństwo fizyczne mogą mieć wyższy priorytet niż klasyczna poufność. Nieprzemyślany restart lub aktualizacja bez okna serwisowego też może wywołać skutek operacyjny, dlatego reakcja musi łączyć pilność z procedurą zmiany.
Root na urządzeniu daje możliwość modyfikacji usług startowych, konfiguracji sieci i lokalnych mechanizmów monitorowania. Atakujący może próbować ukryć proces, zmienić reguły zapory, podmienić pliki albo uruchomić tunel. Nawet po aktualizacji firmware trzeba ocenić, czy utrwalone zmiany nie pozostały w partycji danych lub w innych komponentach środowiska.
Bramy bywają instalowane przez integratorów i pomijane w centralnej inwentaryzacji IT. Mogą działać latami z tym samym adresem, hasłem i regułą NAT. Pierwszym zadaniem nie jest więc jedynie kliknięcie aktualizacji, ale odnalezienie wszystkich urządzeń, ich właścicieli, wersji i połączeń.
Co powinien zrobić operator
Ustal, czy organizacja używa Haiwell IoT Cloud HMI Gateway i czy występuje wersja 3.40.1.12. Sprawdzaj rejestry aktywów OT, konfiguracje przełączników, reguły zapory, dokumentację integratora i pasywne dane sieciowe. Aktywne skanowanie sieci przemysłowej wymaga zatwierdzonej metody, ponieważ niektóre urządzenia reagują źle na agresywne sondy.
Zaplanowaną aktualizację do 3.50.1.19 pobierz z oficjalnego kanału producenta. Zweryfikuj integralność pakietu, wykonaj kopię konfiguracji i ustal procedurę powrotu. Przetestuj zachowanie w środowisku reprezentatywnym, a w oknie zmiany zapewnij obecność osoby rozumiejącej proces przemysłowy. Po aktualizacji potwierdź wersję i ponownie sprawdź komunikację z systemami nadrzędnymi oraz urządzeniami polowymi.
Do czasu wdrożenia odetnij interfejs zarządzający od Internetu i sieci użytkowników. Dostęp powinien przechodzić przez kontrolowany segment administracyjny, VPN z MFA albo host pośredniczący. Zezwól tylko potrzebnym stacjom i portom. Jeżeli funkcja Net Check może zostać wyłączona bez wpływu na proces, wyłącz ją, ale nie traktuj tego jako trwałego zamiennika aktualizacji.
Nie wystawiaj panelu przez prosty port forwarding. Wyszukiwarki usług i automatyczne boty szybko odnajdują stabilne adresy. Nawet silne hasło nie zatrzymuje podatności, która jest osiągalna przed uwierzytelnieniem.
Jak sprawdzić, czy urządzenie zostało naruszone
Zacznij od logów zapory, reverse proxy, VPN i systemów monitorowania sieci. Szukaj nieoczekiwanych połączeń do panelu /setting, nietypowych sesji Socket.io i sekwencji zdarzeń cmdPing z adresów, które nie należą do stacji administracyjnych. Szczególnie ważne są żądania spoza zaplanowanych okien utrzymaniowych.
Na urządzeniu sprawdź procesy, połączenia wychodzące, zmiany plików startowych, kont, kluczy i reguł sieciowych. Porównaj konfigurację z zatwierdzoną kopią oraz obraz firmware z wartością producenta, jeśli platforma udostępnia wiarygodny mechanizm weryfikacji. Nie wykonuj analizy w sposób, który może przerwać sterowanie.
Monitoruj skanowanie wewnętrznych zakresów, DNS do nowych domen, długotrwałe sesje wychodzące i ruch między bramą a systemami, z którymi wcześniej się nie komunikowała. Root RCE może służyć jako punkt przesiadkowy, więc przegląd powinien objąć sąsiednie urządzenia i konta używane do integracji.
Jeżeli są oznaki kompromitacji, odizoluj urządzenie zgodnie z planem ciągłości działania. W OT nagłe odłączenie może być równie ryzykowne jak pozostawienie intruza. Decyzję powinni wspólnie podjąć operator procesu, zespół bezpieczeństwa i właściciel techniczny. Zachowaj dostępne logi i konfigurację przed reimage, a po odbudowie zmień powiązane hasła i klucze.
Segmentacja, która rzeczywiście ogranicza atak
Dobra architektura nie pozwala dowolnej stacji użytkownika inicjować połączenia do interfejsu HMI. Warstwy IT, DMZ przemysłowa, sieć zarządzająca i strefy procesu powinny mieć jawne reguły przepływu. Ruch wychodzący z bramy także wymaga kontroli; w przeciwnym razie przejęte urządzenie może swobodnie zestawić kanał command-and-control.
Lista dozwolonych połączeń powinna wynikać z udokumentowanych zależności. Zapis „brama potrzebuje Internetu” jest zbyt szeroki. Trzeba ustalić konkretne adresy lub usługi, protokoły, kierunki i częstotliwość. Zmiana w tym profilu może być silnym sygnałem detekcyjnym.
Zdalny dostęp dostawcy nie powinien kończyć się bezpośrednio na urządzeniu. Host pośredniczący z rejestrowaniem sesji, MFA i czasowym nadawaniem uprawnień ułatwia kontrolę. Konta współdzielone oraz stałe tunele utrudniają ustalenie, kto wywołał funkcję i kiedy.
Warto też rozdzielić rolę operacyjną od diagnostycznej. Użytkownik potrzebujący podglądu procesu nie musi mieć dostępu do funkcji uruchamiającej narzędzia sieciowe. Producent powinien zastosować uwierzytelnienie, szczegółowe role, walidację wejścia i proces o minimalnych prawach, ale operator może ograniczyć skutki jeszcze przed zmianą produktu.
Lekcje dla twórców urządzeń i DevSecOps
Uruchamianie poleceń systemowych na podstawie tekstu z interfejsu jest znanym antywzorcem. Zamiast command string należy stosować bezpośrednie API systemowe lub bezpieczne wywołanie procesu z osobnymi argumentami. Nazwę hosta można walidować pod kątem długości, dozwolonych znaków i poprawnej składni, a adres IP parsować biblioteką sieciową.
Testy muszą obejmować transporty zdarzeniowe, nie tylko klasyczne formularze HTTP. Socket.io, WebSocket, MQTT czy własny protokół nie zmieniają statusu danych jako niezaufanych. SAST powinien śledzić przepływ od handlera zdarzenia do funkcji uruchamiającej powłokę, a testy dynamiczne próbować znaków granicznych bez wykonywania destrukcyjnych działań.
Proces webowy rzadko potrzebuje root. Jeżeli operacja diagnostyczna wymaga pojedynczego przywileju, lepszy jest mały helper z wąskim interfejsem, profilem systemowym i audytem. Kontener sam w sobie nie wystarcza, zwłaszcza jeśli działa jako privileged lub ma dostęp do sieci hosta.
Secure-by-default oznacza również brak publicznej ekspozycji interfejsu, wymuszone uwierzytelnienie podczas pierwszej konfiguracji, podpisane aktualizacje i czytelny rejestr bezpieczeństwa. Urządzenie przemysłowe jest oprogramowaniem utrzymywanym przez wiele lat, więc mechanizm patchowania jest częścią modelu bezpieczeństwa, a nie dodatkiem.
Fakty, wnioski i priorytet
Faktem z ICSA-26-225-02 jest podatność wersji 3.40.1.12, brak uwierzytelnienia, możliwość wykonania poleceń jako root i wersja 3.50.1.19 wskazana jako niewrażliwa. Faktem jest też ocena CVSS 10,0 oraz brak potwierdzonej eksploatacji w chwili publikacji advisory. Nie należy zamieniać ostatniego punktu w zapewnienie, że urządzenie nie zostało zaatakowane później lub lokalnie.
Wnioskiem Breachroad jest potraktowanie CVE jako testu dojrzałości zarządzania aktywami OT. Organizacja, która nie potrafi szybko wskazać liczby bram, ich wersji i ścieżek komunikacji, ma problem większy niż pojedyncza poprawka. Aktualizacja zamyka znaną lukę, lecz segmentacja, kontrola egressu i niezależny monitoring ograniczają również następny błąd.
Jeśli potrzebujesz przeglądu segmentacji, ekspozycji urządzeń i dostępu administracyjnego, zobacz audyt bezpieczeństwa IT. Dla operatorów, integratorów i zespołów utrzymania warto równolegle zaplanować szkolenie cyberbezpieczeństwa dla organizacji, aby decyzje pod presją incydentu były wcześniej przećwiczone.


