Badacze z firmy Exodus Intelligence zidentyfikowali słaby punkt w procesie naprawy luk w kodzie bazowym Chrome/Chromium. Problem polega na tym, że Google ujawnia informacje o tym, że wprowadzone poprawki dotyczą problemów z bezpieczeństwem dopiero po wydaniu aktualizacji, ale
dodaje do repozytorium kod w celu usunięcia luki w silniku V8 przed publikacją wydania. Poprawki przez pewien czas przechodzą testy, co powoduje powstanie okna, w którym luka jest naprawiona w kodzie bazowym i dostępna do analizy, ale pozostaje jeszcze niezałatana na systemach użytkowników.
Analizując wprowadzone zmiany w repozytorium, badacze zwrócili uwagę na dodanie 19 lutego i w ciągu trzech dni zdołali przygotować , exploitujący bieżące wersje Chrome (opublikowany exploit nie zawierał komponentów do obejścia izolacji sandbox). Firma Google szybko wydaje aktualizację Chrome 80.0.3987.122, usuwając związaną z proponowanym exploitem (CVE-2020-6418). Luka została pierwotnie wykryta przez inżynierów Google i była spowodowana problemem z obsługą typów w operacji JSCreate, która może być wykorzystywana za pomocą metody Array.pop lub Array.prototype.pop. Co ciekawe, podobny problem wystąpił w Firefoxie latem ubiegłego roku.
Badacze zauważyli również, że uprościło to tworzenie exploitów dzięki włączeniu do mechanizmu (zamiast pełnej 64-bitowej wartości, przechowywane są tylko unikalne dolne bity wskaźnika, co znacznie zmniejsza zużycie pamięci w stercie). Na przykład, niektóre struktury danych znajdujące się na początku sterty, takie jak tabela wbudowanych funkcji, obiekty 'native context' oraz gromadzenia śmieci, są teraz umieszczane pod przewidywalnymi i dostępnymi do zapisu pakowanymi adresami.
Ciekawe, że prawie rok temu firma Exodus Intelligence podobną demonstrację możliwości stworzenia exploita na podstawie analizy publicznego dziennika poprawek w V8, ale najwyraźniej nie podjęto odpowiednich działań. W miejscu badaczy
Exodus Intelligence mogli znaleźć się przestępcy lub służby specjalne, które przy tworzeniu exploita miałyby możliwość przez dni, a nawet tygodnie, ukrycie eksploatacji luki przed kolejnym wydaniem Chrome.
Źródło: opennet.ru
