Podatność w OpenWrt przed wersją 25.12.5 umożliwia atakującemu wstrzyknięcie złośliwego kodu HTML/JavaScript do panelu administracyjnego LuCI poprzez spreparowaną nazwę hosta klienta DHCPv6. Ze względu na brak walidacji danych wejściowych, exploit nie wymaga uwierzytelnienia po stronie atakującego, a skutki obejmują pełne przejęcie sesji administratora.
▸ Pokaż oryginał (EN)
OpenWrt is a Linux operating system targeting embedded devices. Prior to 25.12.5, odhcpd writes a DHCPv6 client FQDN option 39 hostname into /tmp/odhcpd.leases through src/statefiles.c statefiles_write_state6() and statefiles_write_state4() without escaping, allowing newline injection of forged lease lines that LuCI rpcd-mod-luci getDHCPLeases displays through htdocs/luci-static/resources/view/status/include/40_dhcp.js and htdocs/luci-static/resources/luci.js dom.append as live HTML in the Active DHCPv6 Leases admin page. This vulnerability is fixed in 25.12.5.
Komponent odhcpd zapisuje opcję FQDN (option 39) z pakietu DHCPv6 bezpośrednio do pliku /tmp/odhcpd.leases za pośrednictwem funkcji statefiles_write_state6() i statefiles_write_state4() bez żadnego escapowania znaków specjalnych. Atakujący będący klientem sieci lokalnej może w nazwie hosta umieścić znak nowej linii (newline injection), wstrzykując w ten sposób sfabrykowane linie dzierżaw do pliku stanu. Interfejs webowy LuCI odczytuje ten plik przez rpcd-mod-luci (getDHCPLeases), a następnie renderuje jego zawartość jako surowy HTML na stronie Active DHCPv6 Leases za pomocą funkcji dom.append w pliku luci.js, co prowadzi do wykonania wstrzykniętego kodu JavaScript w przeglądarce administratora.
Atakujący może wykonać dowolny kod JavaScript w kontekście sesji zalogowanego administratora, co umożliwia kradzież ciasteczek sesji, przejęcie pełnej kontroli nad routerem lub przeprowadzenie dalszych ataków na infrastrukturę sieciową.
Należy zaktualizować OpenWrt do wersji 25.12.5 lub nowszej. Poprawki zostały wprowadzone w repozytorium luci (commit 55379d04) oraz odhcpd (commit 68f38269). Do czasu aktualizacji zaleca się ograniczenie dostępu do interfejsu administracyjnego LuCI wyłącznie do zaufanych hostów oraz monitorowanie ruchu DHCPv6 pod kątem anomalii w nazwach hostów.
OpenWrt we wszystkich wersjach przed 25.12.5 (dotyczy komponentów odhcpd oraz interfejsu LuCI)
Podatność wymaga, aby atakujący znajdował się w segmencie sieci umożliwiającym wysyłanie pakietów DHCPv6 (sieć lokalna lub segment z dostępem do routera), natomiast ofiara (administrator) musi odwiedzić stronę Active DHCPv6 Leases w panelu LuCI. Wektor CVSS wskazuje na brak wymaganych uprawnień po stronie atakującego (PR:N) oraz zmianę zakresu (S:C), co uzasadnia ocenę 9.6.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HOpenwrt
OSOpenwrt< 25.12.5
Powiązane podatności
Stack-based Buffer Overflow w mdns daemon OpenWrt — możliwy RCE
Stack-based Buffer Overflow w demonie mdns OpenWrt — przepełnienie stosu przez PTR query
Out-of-bounds write w sterowniku WLAN AP MediaTek — privilege escalation
Out-of-bounds write w sterowniku WLAN AP MediaTek – privilege escalation
Out of bounds write w sterowniku wlan AP — eskalacja uprawnień na układach MediaTek