6Aug

Luka w Chrome może zostać wykorzystana do wyłączenia rozszerzeń bez jakiejkolwiek interakcji użytkownika

Spis treści

  • Badacz odkrywa lukę w Chrome, która pozwala mu wyłączyć rozszerzenia bez interakcji użytkownika
  • Weryfikacja koncepcji (P0C)
  • Poprawka do Chrome'a

Badacz odkrywa lukę w Chrome, która pozwala mu wyłączyć rozszerzenia bez interakcji użytkownika

badacz bezpieczeństwa, Mathiasa Karlssona odkrył unikalną lukę w Google Chrome, którą można wykorzystać do wyłączenia rozszerzeń Chrome bez interakcji użytkownika.

Na swojej stronie internetowej stwierdził, Wykryj laboratoria że wykorzystał lukę w HTTPS Everywhere.

„W ciągu ostatnich kilku tygodni przyglądałem się bezpieczeństwu niektórych popularnych rozszerzeń bezpieczeństwa i jednym z rozszerzeń, które sprawdziłem (z którego również korzystam), był HTTPS Everywhere. Po kilku godzinach analizy udało mi się go wyłączyć, po prostu przeglądając stronę HTML. W rzeczywistości udało mi się wyłączyć dowolne rozszerzenie i większość (w tym HTTPS Everywhere) bez jakiejkolwiek interakcji użytkownika!”

Powiedział, że najpierw zaczął badać kod źródłowy HTTPS Everywhere, mając nadzieję na znalezienie jakiegoś błędu, ale był rozczarowany.

„Zacząłem od zbadania kodu źródłowego HTTPS Everywhere, mając nadzieję, że znajdę jakiś łatwy błąd w implementacji„ Blokuj wszystkie żądania HTTP ”, ale bezskutecznie” — wyjaśnił Karlsson w post na blogu. „Po pewnym czasie odkryłem (ku mojemu zdziwieniu), że dostęp do rozszerzenia za pomocą procedury obsługi URI„ chrome-extension ”” powoduje wyłączenie rozszerzenia. W rzeczywistości działało to nie tylko w rozszerzeniu HTTPS Everywhere, ale we wszystkich testowanych przeze mnie rozszerzeniach Chrome!”

Po kilku testach zdał sobie sprawę, że najlepszym sposobem, aby użytkownik nieświadomie uzyskał dostęp do procedury obsługi URI, jest skonfigurowanie strony HTML z javascriptem PoC, który wyśle ​​​​żądanie do przeglądarki. Prawie wszystkie żądania załadowania identyfikatora URI „chrome-extension” były blokowane przez przeglądarkę, ale żądania wysyłane za pośrednictwem atrybutu „ping” były dozwolone.

„Atrybut„ ping ”, jeśli jest obecny, wysyła adresy URL zasobów powiadomienie/ping, jeśli użytkownik kliknie hiperłącze” — wyjaśnił. „Oznaczało to, że mogliśmy wyłączyć rozszerzenie, po prostu klikając link, który jest bardzo możliwy do ataku”.

Weryfikacja koncepcji (P0C)

To jest PoC (dowód słuszności koncepcji) łączący odkrycia, które wyłączałyby HTTPS Everywhere, po prostu renderując kod HTML:

ping="chrome-extension://gcbommkclmclpchllfjekcdonpmejbdp/"id="link">link.click()

Następstwa renderowania tego kodu HTML:

Uszkodzone wyłączone rozszerzenie Chrome

Poprawka do Chrome'a

Karlsson powiedział, że poinformował Google o podatności Chrome na niewłaściwą obsługę HTTPS Everywhere żądania i dowiedziałem się, że błąd został już odkryty przez innego badacza bezpieczeństwa w oddzielnym miejscu raport. Google zwróciło uwagę na błąd i został naprawiony w najnowszej stabilnej wersji Chrome.

W poście na blogu nie wspomniano o numerze wersji stabilnej wersji Chrome, więc można założyć, że Karlsson mówi o Chrome 44.0.2403.125 (wersja platformy: 7077.111.0), który został wydany zaledwie kilka dni wstecz. Ta kompilacja zawiera szereg poprawek błędów i aktualizacji zabezpieczeń, których częściowa lista jest dostępna Tutaj.

Jednak starsze wersje Chrome mogą nadal być podatne na ten exploit.