Podatność typu command injection w rodzinie routerów D-Link pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemowych. Krytyczny poziom zagrożenia (CVSS 9.8) wynika z braku wymagań uwierzytelnienia i możliwości pełnego przejęcia kontroli nad urządzeniem.
▸ Pokaż oryginał (EN)
D-Link DIR-822 Rev.B 202KRb06, DIR-822 Rev.C 3.10B06, DIR-860L Rev.B 2.03.B03, DIR-868L Rev.B 2.05B02, DIR-880L Rev.A 1.20B01_01_i3se_BETA, and DIR-890L Rev.A 1.21B02_BETA devices mishandle IsAccessPoint in /HNAP1/SetAccessPointMode. In the SetAccessPointMode.php source code, the IsAccessPoint parameter is saved in the ShellPath script file without any regex checking. After the script file is executed, the command injection occurs. A vulnerable /HNAP1/SetAccessPointMode XML message could have shell metacharacters in the IsAccessPoint element such as the `telnetd` string.
Podatność tkwi w obsłudze parametru IsAccessPoint w żądaniu HNAP1/SetAccessPointMode. Kod źródłowy pliku SetAccessPointMode.php zapisuje wartość parametru IsAccessPoint bezpośrednio do pliku skryptu ShellPath bez jakiejkolwiek walidacji wyrażeniami regularnymi. Po wykonaniu tego skryptu przez urządzenie dochodzi do interpretacji osadzonych metaznaków powłoki jako poleceń systemowych. Przykładem ataku jest umieszczenie ciągu uruchamiającego usługę telnetd w elemencie IsAccessPoint złośliwego żądania XML wysłanego do interfejsu HNAP1.
Atakujący może zdalnie wykonać dowolne polecenia z uprawnieniami procesu obsługującego HNAP1, co w praktyce oznacza pełne przejęcie kontroli nad urządzeniem, w tym możliwość otwarcia zdalnego dostępu (np. przez telnetd), modyfikacji konfiguracji sieci lub wykorzystania routera jako punktu przyczółkowego w sieci.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako tymczasowe zabezpieczenie zaleca się ograniczenie dostępu do interfejsu administracyjnego HNAP1 wyłącznie z zaufanych adresów IP oraz wyłączenie zdalnego zarządzania urządzeniem od strony WAN.
D-Link DIR-822 Rev.B 202KRb06, DIR-822 Rev.C 3.10B06, DIR-860L Rev.B 2.03.B03, DIR-868L Rev.B 2.05B02, DIR-880L Rev.A 1.20B01_01_i3se_BETA, DIR-890L Rev.A 1.21B02_BETA; a także firmware D-Link DIR-818Lw wymieniony w metadanych produktu
Szczegóły techniczne i dowód koncepcji (proof of concept) opublikowane zostały przez badacza pr0v3rbs w repozytorium GitHub w ramach serii 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 wersjeDlink Dir 822 Firmware
OSDlink3.10b06Dlink Dir 860l
HWDlinkwszystkie wersjeDlink Dir 868l
HWDlinkwszystkie wersjeDlink Dir 880l
HWDlinkwszystkie wersjeDlink Dir 890l\/r
HWDlinkwszystkie wersjeD Link Dir 818lw Firmware
OSD-Link2.05.b03D Link Dir 822 Firmware
OSD-Link202krb06D Link Dir 860l Firmware
OSD-Link2.03.b03D Link Dir 868l Firmware
OSD-Link2.05b02D Link Dir 880l Firmware
OSD-Link1.20b01_01_i3seD Link Dir 890l\/r Firmware
OSD-Link1.21b02
Powiązane podatności
D-Link DIR-859: RCE jako root przez UPnP bez uwierzytelnienia
D-Link DIR-860L/865L/868L/880L — command injection przez soap.cgi
D-Link DIR-868L — nieuwierzytelniony command injection w fileaccess.cgi
Buffer overflow w D-Link DIR-860L v2.03 — brak weryfikacji długości pola SID
D-Link DIR-860L: hardcoded credentials w usłudze Telnet umożliwiają RCE