Podatność typu command injection w obsłudze wiadomości HNAP1/SetRouterSettings pozwala zdalnemu, nieuwierzytelnionemu atakującemu na wykonanie dowolnych poleceń systemowych na urządzeniu. Krytyczny poziom zagrożenia wynika z braku jakiejkolwiek walidacji danych wejściowych przed przekazaniem ich do polecenia iptables.
▸ Pokaż oryginał (EN)
In the /HNAP1/SetRouterSettings message, the RemotePort parameter is vulnerable, and the vulnerability affects D-Link DIR-818LW Rev.A 2.05.B03 and DIR-822 B1 202KRb06 devices. In the SetRouterSettings.php source code, the RemotePort parameter is saved in the $path_inf_wan1."/web" internal configuration memory without any regex checking. And in the IPTWAN_build_command function of the iptwan.php source code, the data in $path_inf_wan1."/web" is used with the iptables command without any regex checking. A vulnerable /HNAP1/SetRouterSettings XML message could have shell metacharacters in the RemotePort element such as the `telnetd` string.
Parametr RemotePort przekazywany w wiadomości XML do endpointu /HNAP1/SetRouterSettings jest zapisywany w wewnętrznej konfiguracji urządzenia bez jakiegokolwiek sprawdzania wyrażeniami regularnymi (regex). Następnie, w funkcji IPTWAN_build_command pliku iptwan.php, przechowywana wartość jest bezpośrednio przekazywana jako argument do polecenia iptables — również bez walidacji. Atakujący może umieścić w elemencie RemotePort specjalne metaznaki powłoki (shell metacharacters), np. wyrażenie uruchamiające usługę telnetd, co skutkuje wykonaniem osadzonego polecenia z uprawnieniami procesu obsługującego żądanie.
Atakujący bez żadnego uwierzytelnienia może zdalnie wykonać dowolne polecenia systemowe na urządzeniu, co prowadzi do pełnego przejęcia kontroli nad routerem, w tym do naruszenia poufności, integralności i dostępności urządzenia oraz sieci za nim stojącej.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo, do czasu wdrożenia aktualizacji, zaleca się ograniczenie dostępu do interfejsu zarządzania HNAP1 wyłącznie z zaufanych adresów IP oraz wyłączenie zdalnego zarządzania urządzeniem, jeśli nie jest niezbędne.
D-Link DIR-818LW Rev.A firmware w wersji 2.05.B03 oraz D-Link DIR-822 B1 firmware w wersji 202KRb06
Szczegółowe informacje techniczne oraz materiały dotyczące podatności zostały opublikowane w repozytorium GitHub użytkownika pr0v3rbs, obejmującym grupę CVE-2018-19986 do CVE-2018-19990.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDlink Dir 818lw
HWDlinkwszystkie wersjeDlink Dir 822
HWDlinkwszystkie wersjeD Link Dir 818lw Firmware
OSD-Link2.05.b03D Link Dir 822 Firmware
OSD-Link202krb06
Powiązane podatności
D-Link DIR-859: RCE jako root przez UPnP bez uwierzytelnienia
D-Link DIR-822+: Login bypass w interfejsie HNAP1 — puste hasło admina
Command injection w D-Link DIR-822+ — zdalne wykonanie poleceń
Buffer overflow w D-Link DIR-822 przez protokół HNAP (SetClientInfo)
Command injection w D-Link DIR-822/860L/868L/880L/890L przez HNAP1