
Wprowadzenie do problemu / definicja
W ekosystemie OpenWrt ujawniono podatność typu stored cross-site scripting (stored XSS) w interfejsie administracyjnym LuCI, związaną z obsługą nazw hostów pochodzących z dzierżaw DHCPv6. Problem polega na tym, że odpowiednio spreparowana nazwa FQDN klienta DHCPv6 może zostać zapisana przez usługę obsługującą dzierżawy, a następnie wyświetlona w panelu bez właściwego neutralizowania danych wejściowych.
W praktyce oznacza to, że kod HTML lub JavaScript osadzony w nazwie hosta może zostać uruchomiony w przeglądarce administratora podczas przeglądania informacji o stanie sieci. To szczególnie groźny scenariusz, ponieważ dotyczy urządzenia brzegowego, które zwykle zarządza ruchem i konfiguracją całej infrastruktury lokalnej.
W skrócie
- Podatność została powiązana z identyfikatorem CVE-2026-61876.
- Problem dotyczy interfejsu LuCI używanego w OpenWrt.
- Atak wykorzystuje nazwę hosta przekazywaną przez opcję Client FQDN w DHCPv6.
- Złośliwa wartość zostaje zapisana, a następnie wyświetlona w panelu administracyjnym.
- Do skutecznego ataku wymagany jest dostęp do sieci lokalnej lub sąsiedniej oraz otwarcie odpowiedniego widoku przez administratora.
Kontekst / historia
LuCI to webowy interfejs administracyjny szeroko stosowany w OpenWrt do zarządzania konfiguracją routera, interfejsami sieciowymi, usługami oraz statusem urządzenia. Z perspektywy bezpieczeństwa jest to jeden z najbardziej wrażliwych komponentów systemu, ponieważ zapewnia dostęp do ustawień mających bezpośredni wpływ na cały ruch sieciowy.
W tego typu panelach bardzo często prezentowane są dane pochodzące bezpośrednio z sieci, takie jak hostnames klientów, adresy IP, dzierżawy czy informacje diagnostyczne. Jeżeli aplikacja webowa nie traktuje takich danych jako niezaufanych i nie stosuje poprawnego escapingu, nawet pozornie zwykły wpis może stać się nośnikiem aktywnego kodu uruchamianego po stronie przeglądarki.
W opisywanym przypadku problem dotyczy właśnie prezentacji nazw hostów dla dzierżaw DHCPv6. To pokazuje, że zagrożenie może wynikać nie tylko z klasycznych formularzy administracyjnych, ale także z automatycznie zbieranych danych telemetrycznych pochodzących od urządzeń końcowych.
Analiza techniczna
Technicznie atak opiera się na wykorzystaniu opcji 39 protokołu DHCPv6, czyli Client FQDN. Napastnik obecny w tym samym segmencie sieci może wysłać komunikat DHCPv6 zawierający złośliwie przygotowaną nazwę hosta z osadzonym znacznikiem HTML lub skryptem.
Następnie wartość ta zostaje zapisana przez mechanizm obsługujący dzierżawy i trafia do warstwy prezentacji w LuCI. Jeżeli interfejs administracyjny renderuje dane w sposób interpretujący je jako HTML, zamiast potraktować je jak zwykły tekst, dochodzi do wykonania przygotowanego ładunku w kontekście sesji administratora.
Scenariusz eksploatacji ma więc charakter typowego stored XSS. Wstrzyknięcie danych następuje wcześniej, natomiast aktywacja dopiero wtedy, gdy uprzywilejowany użytkownik otworzy odpowiedni ekran, na przykład widok statusu lub sekcję z informacjami o DHCP i DNS.
Istotnym elementem tego wektora ataku jest brak konieczności wcześniejszego logowania do LuCI przez napastnika. Wystarczy możliwość komunikacji w sieci lokalnej, co czyni podatność szczególnie istotną w środowiskach współdzielonych, słabo segmentowanych, testowych lub takich, w których znajdują się urządzenia gościnne i niezarządzane.
Konsekwencje / ryzyko
Skutki stored XSS w panelu administratora routera mogą być bardzo poważne. Po wykonaniu kodu JavaScript w przeglądarce zalogowanego użytkownika napastnik może próbować przejąć sesję, wykonywać operacje w imieniu administratora albo zmieniać konfigurację systemu bez jego wiedzy.
W środowisku OpenWrt potencjalne konsekwencje obejmują modyfikację ustawień DNS, zmianę reguł zapory, otwarcie dostępu zdalnego, przekierowanie ruchu, wyłączenie części zabezpieczeń lub przygotowanie trwałej konfiguracji ułatwiającej dalszą obecność w sieci. Ponieważ urządzenie brzegowe pełni centralną rolę komunikacyjną, incydent może szybko wyjść poza pojedynczy host i objąć cały segment infrastruktury.
Ryzyko jest szczególnie wysokie tam, gdzie administratorzy regularnie korzystają z ekranów diagnostycznych, a jednocześnie do sieci LAN podłączane są urządzenia, które nie podlegają ścisłej kontroli. Wymóg lokalnego dostępu do sieci nie eliminuje zagrożenia, lecz przesuwa je w stronę ataków wewnętrznych i scenariuszy po uzyskaniu przyczółka w środowisku.
Rekomendacje
Najważniejszym krokiem jest aktualizacja LuCI lub całego środowiska OpenWrt do wersji zawierającej poprawkę usuwającą podatność. Administratorzy korzystający z własnych buildów powinni upewnić się, że odpowiedni commit naprawczy lub backport rzeczywiście znalazł się w używanym obrazie.
Równolegle warto przeprowadzić przegląd sposobu renderowania danych pochodzących z sieci. Nazwy hostów, FQDN, opisy interfejsów i inne pola widoczne w panelu powinny być traktowane jako dane niezaufane i prezentowane wyłącznie po poprawnym escapingu.
- Ograniczyć dostęp do LuCI tylko do zaufanych hostów, podsieci lub VLAN-ów.
- Segmentować sieć tak, aby urządzenia nieufne nie miały bezpośredniego wpływu na płaszczyznę zarządzania.
- Monitorować nietypowe wpisy hostname oraz dzierżawy DHCPv6.
- Rozważyć wyłączenie nieużywanych usług IPv6 lub DHCPv6 tam, gdzie nie są potrzebne.
- Regularnie analizować logi i konfigurację pod kątem nieautoryzowanych zmian.
Dodatkową warstwę ochrony mogą stanowić mechanizmy ograniczające skutki XSS, takie jak polityki bezpieczeństwa treści, skrócenie czasu życia sesji czy dodatkowe potwierdzanie operacji administracyjnych. Nie zastępują one usunięcia błędu, ale mogą ograniczyć skalę szkód.
Podsumowanie
Podatność CVE-2026-61876 w LuCI dla OpenWrt pokazuje, że nawet podstawowe dane przesyłane w ramach DHCPv6 mogą stać się nośnikiem skutecznego ataku na interfejs administracyjny. Stored XSS oparty na nazwie hosta dzierżawy jest szczególnie niebezpieczny, ponieważ uruchamia się dopiero w sesji uprzywilejowanego użytkownika.
Dla administratorów oznacza to konieczność szybkiego wdrożenia poprawek, przeglądu sposobu prezentacji niezaufanych danych oraz wzmocnienia segmentacji i kontroli dostępu do panelu zarządzania. W urządzeniach sieciowych tego typu błędy mogą bowiem prowadzić nie tylko do pojedynczego incydentu, ale także do kompromitacji całej infrastruktury lokalnej.
Źródła
- Exploit Database – LuCI DHCPv6 – Lease Hostname Stored Cross-Site Scripting: https://www.exploit-db.com/exploits/52637
- NVD – CVE-2026-61876: https://nvd.nist.gov/vuln/detail/CVE-2026-61876
- OpenWrt Project: https://openwrt.org/
- LuCI GitHub Repository: https://github.com/openwrt/luci