Jedenaście lat temu, w roku 2007, miało miejsce wiele pamiętnych wydarzeń. Steve Jobs zaprezentował pierwszego iPhone’a. Microsoft pokazał światu Windowsa Vistę. Drapacz chmur Burż Chalifa stał się najwyższym budynkiem na świecie, a Polacy świętowali wejście do strefy Schengen. Z mniej doniosłych wydarzeń – w 2007 roku zgłoszono dziurę w przeglądarce Mozilla Firefox, która posiadała wówczas 25% rynku. Wierzcie lub nie, ale przez 11 lat Mozilla nie podjęła żadnych działań, by ją załatać. Teraz z tego powodu cierpią użytkownicy.
11-letnia luka w 16-letniej przeglądarce
Wczoraj opisywaliśmy atak DarkVishnya – przedsięwzięcie zdecydowanie w starym stylu, wymagające fizycznego dostępu do infrastruktury ofiary i specjalnie przygotowanych urządzeń. Czy jednak DarkVishnya może się równać z dziurą, która znajduje się w Firefoksie od 11 lat? Chodzi o błąd nr 377496, który zgłosił Mozilli dokładnie 14 kwietnia 2007 roku John Barberio – człowiek znany z tego, że… w ciągu ostatniej dekady znalazł w Firefoksie jeszcze 5 innych błędów. Weźmy jednak na tapet 377496 – jak przebiega atak i co grozi użytkownikom Firefoksa?
Punktem wyjścia jest przygotowanie strony, na której znajdzie się wiele elementów wymagających autoryzacji. Ponad dziesięć lat temu takie wyskakujące okna z prośbą o login i hasło były znacznie częstsze niż dzisiejsze elegancko ostylowane w CSS-ie formularze osadzone na dynamicznych i responsywnych stronach internetowych. Podatność w Firefoksie pozwala na wykorzystanie JavaScriptu do uruchomienie nieskończonej pętli takich okien, a to prowadzi na w linii prostej do DoS, czyli starego dobrego Denial of Service. Nie trzeba nawet wykorzystywać skryptu – wystarczą tysiące osadzonych obrazków, które żądają autoryzacji, by Firefox – niezmiennie od 11 lat – padł trupem.
Konkurencja sobie radzi
Konsekwencje mogą być znacznie bardziej przykre, niż tylko nagłe przerwanie pracy przeglądarki. Zapętlone okno dialogowe może być bowiem skutecznie wykorzystywane do utrzymania użytkownika na stronie internetowej. Nie może on jej łatwo opuścić, zaś w tle mogą działać na przykład skrypty kopiące kryptowaluty. Lektura komentarzy do zgłoszenia Johna Barberio to podróż przez kolejne piekielne kręgi frustracji – wrażenie robi jedynie rozpiętość czasowe. Te same opinie i uwagi pojawiają się zarówno w roku 2007, jak i 2013 oraz 2018. Przez ten czas społeczność nie doczekała się żadnej inicjatywy ze strony Mozilli, zupełnie jakby błąd nie istniał.
W całej historii warto wspomnieć, że z podobnymi problemami musiała sobie także jakoś poradzić konkurencja – wszak okno dialogowe z żądaniem autoryzacji bywa elementem witryn także dzisiaj. I udało się – Chrome wyświetla jedno żądanie autoryzacji per karta, blokując wszystkie inne. Edge natomiast wyświetla kolejne okna z dużym interwałem, aby dać użytkownikowi czas na zamknięcie poprzedniego i opuszczenie strony. Cóż, jak widać dla Mozilli od ponad dekady rozwiązanie tego problemu nie jest tak oczywiste. Dziś premierę miała nowa wersja przeglądarki – Firefox 64. Wciąż znajdziecie w nim 11-letni błąd nr 377496.