Kolejne doniesienia o problemach D-Linka sprawiają, że powoli przestajemy się śmiać i zbiera nam się na płacz. Po ostatniej spektakularnej wpadce z brakiem sensownych zabezpieczeń interfejsu HNAP D-Link wypuścił aktualizację oprogramowania. Craig z /dev/ttyS0 spojrzał na poprawkę i zapłakał.
Fragment spapranego kodu
Nie będziemy już wchodzić w szczegóły, bo to naprawdę strata czasu. Krótko mówiąc z trzech krytycznych błędów które D-Link sam twierdzi, że załatał, żaden nie został faktycznie usunięty. Zamiast poprawić błędne fragmenty kodu, D-Link dopisał kolejny fragment, mający weryfikować żądania przesyłane do usługi. Oczywiście również ten fragment kodu popsuł. Usuwając ryzyko przepełnienia bufora w funkcji sprintf użył funkcji sprintf podatnej na przepełnienie bufora. Poza tym nowa łata jedynie sprawdza, czy polecenia są prawidłowo skonstruowane, nie weryfikując na przykład uprawnień wydającego polecenie. Dzięki temu poniższe żądanie przywróci załatane urządzenie D-Linka do ustawień fabrycznych
W ramach komentarza zacytujemy tytuł wpisu Craiga:
What the Ridiculous Fuck, D-Link?!
Jeśli macie D-Linka to zmieńcie oprogramowanie na alternatywne albo wyrzućcie przez okno i kupcie coś, gdzie da się zainstalować DD-WRT, OpenWRT czy inne Tomato. Szkoda nerwów.
Fragment spapranego kodu
Nie będziemy już wchodzić w szczegóły, bo to naprawdę strata czasu. Krótko mówiąc z trzech krytycznych błędów które D-Link sam twierdzi, że załatał, żaden nie został faktycznie usunięty. Zamiast poprawić błędne fragmenty kodu, D-Link dopisał kolejny fragment, mający weryfikować żądania przesyłane do usługi. Oczywiście również ten fragment kodu popsuł. Usuwając ryzyko przepełnienia bufora w funkcji sprintf użył funkcji sprintf podatnej na przepełnienie bufora. Poza tym nowa łata jedynie sprawdza, czy polecenia są prawidłowo skonstruowane, nie weryfikując na przykład uprawnień wydającego polecenie. Dzięki temu poniższe żądanie przywróci załatane urządzenie D-Linka do ustawień fabrycznych
Bash:
wget --header="SOAPAction: http://purenetworks.com/HNAP1/GetDeviceSettings/SetFactoryDefault" http://192.168.0.1/HNAP
What the Ridiculous Fuck, D-Link?!
Jeśli macie D-Linka to zmieńcie oprogramowanie na alternatywne albo wyrzućcie przez okno i kupcie coś, gdzie da się zainstalować DD-WRT, OpenWRT czy inne Tomato. Szkoda nerwów.