Opera Software wydała poprawioną wersję swojego flagowego produktu – przeglądarki Opera w wersji dla Windows.
Nowa wersja łata dwa poważne błędy umożliwiające wykonanie
dowolnego kodu oraz wyciek wrażliwych danych z systemu ofiary oraz całą serię pomniejszych niedociągnięć.
Pierwszy błąd bezpieczeństwa, dotyczący możliwości wykonania dowolnego kodu
wykorzystuje nieprawidłową obsługę dużych wartości parametru
Content-Length w nagłówku HTTP.
Po wstępnych analizach stwierdzono nieprawidłowe posługiwanie
się wartością typu signed integer, nieprawidłowe sprawdzanie
błędów konwersji oraz brak ograniczenia wartości tylko do liczb
dodatnich, a sama luka nie została uznana za poważną.
Następnego dnia, po rozesłaniu prośby o dostarczenie większej ilości informacji do serwisów zajmujących się bezpieczeństwem, Secunia zwróciła uwagę na inną możliwość
użycia tego błędu. Wartość Content-Length o wartościach w zakresie
od 2^63 do 2^64-1 zwracana była jako prawidłowa mimo, że była
poza zakresem działania funkcji konwersji podtypu signed
dostarczanej przez kompilator (powinna zamiast tego zwrócić błąd),
w rezultacie zwracana wartość była w zakresie od -2^63 do -1.
Rezultatem tego błędu w środowisku 64 bitowym było jedynie
zakończenie pracy przeglądarki, natomiast w środowisku 32 bitowym
potencjalnie możliwe stało się przenoszenie pamięci z jednego
miejsca w drugie bez powodowania zakończenia pracy przeglądarki.
Nie jest to „przepełnienie bufora” a „zepsucie pamięci
(memory corruption)” a głównym stawianym pytaniem było, czy dzięki niemu możliwe jest wykonanie dowolnego kodu czy tylko zakończenie pracy
przeglądarki.
Podczas dochodzenia przyczyn błędu, Secunia dostarczyła
przykład powodujący losowe zakończenie pracy przeglądarki,
ukazując również możliwość potencjalnego późniejszego
wykonania kodu, co oznacza, że „zepsuta pamięć” może być
częściowo używalna (nie powoduje zakończenia pracy programu).
Jadnak duża liczba zależności danych używanych w programach,
takich jak Opera, powodują, że wykorzystanie tego błędu i jednoczesne utrzymywanie ważnych danych programu w
stanie nienaruszonym jest właściwie niemożliwe i w
większości przypadków kończy się zakończeniem pracy programu.
Systemy posiadające włączone DEP oraz ASLR
znacząco obniżają
możliwość wykorzystania powyższego błędu.
Kolejny błąd bezpieczeństwa, tym razem umożliwiającym wyciek wrażliwych
danych dotyczy obsługi XSLT.
Błąd polega na tym, że niektóre konstrukcje w XSLT mogą powodować pobranie
niewłaściwej treści do dokumentu wynikowego. Wspomniana treść
pojawia się losowo z wcześniej odwiedzonych,
zbuforowanych wersji stron, mogących zawierać cenne dane (np. numery kart kredytowych ze stron banku). Te informacje mogą zostać
następnie przetworzone przez dokument wynikowy.
Pełna lista naprawionych błędów/wprowadzonych usprawnień:
- UI
- Naprawione błędy:
- metoda przeciągnij i upuść nie działa w niektórych instancjach
- usuwanie zakładki powoduje zamknięcie/zwinięcie wszystkich folderów
- utrata skupienia przy usuwaniu zakładki
- zintegrowane szukanie wykorzystuje Google a nie przeszukuje danej strony
- przycisk “O” ponownie pojawia się gdy pasek menu jest włączony
- ikona Opery pozostaje w pasku systemowym (tray) po wyłączeniu przeglądarki
- zminimalizowane karty nie są wyświetlane po uruchomieniu
- ikona strony (favicon) nie jest dodawana do zakładek gdy w nazwie pliku jest znak zapytania
- pojedyncze znaki w tekście po chińsku są odwracane w kierunku odwrotnym do ruchu wskazówek zegara
- Naprawione błędy:
- E-mail, Wiadomości, Chat
- Naprawione błędy:
- problem występujący po kliknięciu prawym przyciskiem myszy na elementy listy pod “All messages” i wybranie “Compose”
- pojawianie się powiadomienia mimo, że okno jest aktywne
- wiadomości “duchy” pojawiające się w śmietniku po jego opróżnieniu i ponownym uruchomieniu opery
- nieładowanie wiadomości po ich odznaczeniu i ponownym zaznaczeniu
- niewyświetlanie treści wiadomości e-mail gdy używane jest dostosowanie widoku do szerokości
- załączniki nie są wysyłane po ich dodaniu i natychmiastowym wysłaniu wiadomości
- e-mail powitalny jest w innym języku niż przeglądarka (brak lokalizacji)
- w części tekstowej odpowiedzi wiadomości e-mail HTML brakuje znacznika zamykającego cytaty blokowe
- Naprawione błędy:
- Wyświetlanie i skrypty
- Usprawnienia:
- usprawnienia silnika JavaScript “Carakan”
- Naprawione błędy:
- znikające ikony z menu po ustawieniu głębi kolorów na 16 bitów
- mała wydajność przewijania
- nieprawidłowa czcionka używana dla stron zakodowanych w UTF-8 bez wybranego języka (CJK)
- Usprawnienia:
- Sieć
- Naprawione błędy:
- nieprawidłowe parsowanie ciasteczek otrzymanych przez NPAPI
- wyłączone blokowanie ciasteczek osób trzecich jako ustawienie domyślne
- program zapisuje ciasteczko od domeny z której pochodzi a nie ustawionej
- Naprawione błędy:
- Bezpieczeństwo
- Naprawione błędy:
- nieprawidłowa obsługa parametru Content-Length może powodować wykonanie kodu
- XSLT może pobrać losowe treści z dokumentów w żaden sposób niepowiązanych (dzięki crazypops)
- Naprawione błędy:
Opracowano na podstawie:
Heise Online
Opera 10.51 Windows Changelog
Opera Knowledge Base 949
Opera Knowledge Base 948
Blog Opera Security Group
Dodaj komentarz