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ł.
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
wget --header="SOAPAction: http://purenetworks.com/HNAP1/GetDeviceSettings/SetFactoryDefault" http://192.168.0.1/HNAP
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.
Komentarze
Niezły fuckup.
Aż taka niekompetencja, czy działanie świadome i celowe?
Może chłopaki z d-linka czekają aż ktoś im podrzuci gotowy kod, widocznie na stacku nie znaleźli odpowiedzi to klepią losowy kod.
zapewne :)
Zaczynam podejrzewać, że ta cała niechęć czy nieporadność w łataniu dziur ma po części skłonić użytkowników do zakupu nowego sprzętu. Przecież to świetny powód.
Ten asembler pochodzi z dekompilacji kodu? Zna ktoś narzędzie, którym można coś takiego uzyskać?
Ida pro