Na interesujący błąd w WhatsAppie natrafili tym razem badacze z grupy Checkpoint Research. Podatność jest już załatana, więc nie ma powodów do obaw, ale sama jej charakterystyka zasługuje na chwilę uwagi.
Wyobraź sobie, że znajdujesz w sieci przypadkowe zdjęcie, którym chcesz podzielić się ze znajomym na WhatsAppie. Myślisz: dorzucę od razu jakiś filtr, będzie bardziej efektownie. Tymczasem taki właśnie scenariusz mógł zakończyć się ujawnieniem całej zawartości pamięci aplikacji, z rozmowami na czele. Aż do wersji numer 2.21.1.13 dla Androida.
Podatność odpowiedzialną za atak oznaczono jako CVE-2020-1910 i dotyczy ona filtrów obrazu, a konkretniej obsługującej je funkcji applyFilterIntoBuffer(), która pobiera plik źródłowy, stosuje modyfikacje i kopiuje wynik do bufora docelowego. Jak odkryli badacze, w kodzie znalazło się wadliwe założenie, że źródło musi mieć format kolorów RGBA, czyli cztery bajty na piksel, a ostateczna grafika będzie dokładnie taka sama.
Kiedy zapisano obraz źródłowy w 8-bitowej skali szarości, co daje jeden bajt na piksel, okazało się, że funkcja filtra ulega zapętleniu i usiłuje zapisać do bufora docelowego czterokrotność źródła. W końcu wskaźnik wędruje poza bufor, a to w połączeniu ze szkodliwym kodem w samej grafice pozwala wstrzyknąć do pamięci operacyjnej dowolne śmieci.
Zobacz: Rosja. Smartkałach z Androidem. Będą to sprzedawać cywilom
Konsekwencje mogły być bardzo poważne, włączając to ujawnienie treści rozmów i listy kontaktów. Wprost z urządzenia, a więc bez względu na obecność szyfrowania end-to-end i dodatkowe zasieki.
Zespół WhatsAppa, poinformowany o znalezisku, wyeliminował błąd. Na Androidzie, bo z racji restrykcyjnego podejścia do zarządzania danymi, na iOS-ie chochlik w ogóle nie występował. Z dobrych informacji, nie wiadomo również, czy kiedykolwiek wykorzystano opisywaną sztuczkę w jakimś faktycznym ataku. Mimo wszystko, to wartościowe odkrycie. Obrazuje bowiem doskonale, z jak nieoczywistych wektorów ataku mogą korzystać cyberprzestępcy.
Źródło zdjęć: Unsplash (Asterfolio)
Źródło tekstu: Checkpoint Research