Firma Google opublikowała wydanie przeglądarki internetowej Chrome 136. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, który stanowi podstawę Chrome. Przeglądarka Chrome różni się od Chromium wykorzystaniem logo Google, posiadaniem systemu powiadomień o awariach, modułami do odtwarzania chronionych treści wideo (DRM), systemem automatycznej instalacji aktualizacji, stałym włączonym Sandbox-em oraz dostarczaniem kluczy do Google API i przesyłaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, oddzielnie wspierana jest gałąź Extended Stable, towarzysząca przez 8 tygodni. Następne wydanie Chrome 137 zaplanowane jest na 27 maja.
Główne zmiany w Chrome 136:
- Dodano ochronę przed wyciekiem informacji o wcześniej przeglądanych stronach, wynikającym z zastosowania pseudoklas CSS ":visited", pozwalającej dostosować wygląd wcześniej otwartych odnośników. Do wersji Chrome 136 kliknięcie w odnośnik prowadziło do zmiany wyglądu tego odnośnika na wszystkich stronach pokazujących dany odnośnik, niezależnie od tego, z jakiej strony nastąpiło przejście. Na swojej stronie atakujący mógł określić, czy użytkownik wcześniej otworzył interesujące go odnośniki, analizując zmianę wyglądu tych odnośników. Na przykład, jeśli utworzyć listę odnośników do różnych stron, wcześniejsze odwiedzone strony w tej liście będą oznaczone przez przeglądarkę innym kolorem, na podstawie czego można wnioskować, czy odnośniki były wcześniej otwierane.
Aby zablokować wycieki informacji o odwiedzonych odnośnikach, w Chrome wdrożono izolację przetwarzania selektora ":visited" w odniesieniu do przeglądanej strony, tzn. elementy są teraz stylizowane przy użyciu ":visited" tylko wtedy, gdy zostały wcześniej otwarte z bieżącej strony i w odniesieniu do bieżącego iframe. Izolacja została zrealizowana poprzez haszowanie stylu przeglądanych odnośników z wykorzystaniem jako klucz trzech składników — odnośnika, strony głównej i hosta używanego w iframe.

Na przykład, jeśli na stronie „A” nastąpił kliknięcie w link, ten link będzie teraz podświetlany tylko na stronie „A” i pozostanie niezmienny na stronie atakującego. Wyjątek stanowią tylko iframe, ładowane z głównej strony (same-origin), oraz linki do bieżącej strony. W ten sposób, przy otwieraniu strony „A”, linki prowadzące do strony „A” będą podświetlane, nawet jeśli przejścia na nie pochodziły z innej strony, ale inne linki będą podświetlane tylko wtedy, gdy przejścia odbyły się ze strony „A”.


W przeglądarce Firefox ochrona przed tego typu wyciekiem została wprowadzona w 2010 roku, ale istniały metody jej omijania. Na przykład w 2024 roku w Firefox 122 usunięto możliwość analizy koloru pikseli za pomocą filtrów korzystających z parametru currentColor oraz manipulacji z tagiem canvas w SVG.
- W wersji na Androida zrealizowano przesyłanie na serwery Google telemetrii z danymi o APK pobieranych przez przeglądarkę. Na razie funkcjonalność ogranicza się do wysyłania telemetrii, ale w przyszłości będzie wykorzystywana do wyświetlania ostrzeżeń i blokowania pobierania złośliwych plików APK. Sprawdzenie odbywa się tylko w przypadku włączenia odpowiedniej opcji w ustawieniach trybu rozszerzonej ochrony przeglądarki (Safe Browsing > Enhanced protection).
- Do zdalnego debugowania teraz wymagane jest wskazanie osobnego katalogu z danymi, ustalanego przy uruchamianiu za pomocą parametru „—user-data-dir”, który należy podać razem z parametrem „—remote-debugging-pipe” lub „—remote-debugging-port”. Przy użyciu domyślnego katalogu w systemach Windows, Linux i macOS zdalne debugowanie przestanie działać. Powód tej zmiany to przeciwdziałanie złośliwemu oprogramowaniu, które wykorzystuje zdalne debugowanie do wyciągania danych z Google Chrome. Przy użyciu osobnego katalogu stosowany jest inny klucz szyfrowania, który uniemożliwia dostęp do danych roboczych użytkownika w głównym katalogu. Zmiana dotyczy tylko Chrome i nie stosuje się w Chromium.
- Zmodernizowano wygląd pasków przewijania na platformach Linux i Windows. Przy bezczynności pasek przewijania jest ukrywany i pojawia się tylko przy wznowieniu przewijania strony. Do zarządzania nowym wyglądem pasków przewijania zaproponowano ustawienia chrome://flags#fluent-overlay-scrollbars i chrome://flags#fluent-scrollbars.


- W funkcji CSS attr() argument typu „string” został przekształcony w „raw-string”, zgodnie z decyzją grupy roboczej koordynującej rozwój specyfikacji CSS. Zmiana ma na celu wyeliminowanie zamieszania spowodowanego podobieństwem wyrażeń „attr(foo type(<string>))” i „attr(foo string)”.
- W API ProgressEvent, stosowanym do tworzenia wskaźników postępu, atrybuty „loaded” i „total” zamiast typu „unsigned long long” używają typu „double”, co odpowiada zachowaniu elementu HTML <progress> i pozwala na wyświetlanie w wskaźniku stopniowych zmian wartości niecałkowitych, na przykład przy zmianie wartości z 0 do 1.
- Do escape'owania ciągów używanych wewnątrz wyrażeń regularnych zaproponowano statyczną metodę „RegExp.escape”. Ciągi escape'owane przy użyciu RegExp.escape można bezpiecznie używać jako wzorzec w konstruktorze RegExp().
- Stronie zezwolono na automatyczne generowanie kluczy Passkey na podstawie już zapisanych danych logowania dla tej strony. Generowanie Passkey odbywa się bez wyświetlania oddzielnego modalnego okna, jeśli wcześniej użytkownik potwierdził dla strony utworzenie danych logowania.
- Dodano właściwość CSS dynamic-range-limit do ograniczenia maksymalnej jasności treści HDR.
- W API Speculation Rules (<script type=»speculationrules»>) pozwolono na wskazanie opcjonalnego pola „tag” do śledzenia źródła. Zawartość tego pola zostanie przesłana przez nagłówek HTTP Sec-Speculation-Tags.
- W WebRTC i API MediaRecorder dodano wsparcie dla kodeka H265 (HEVC) oprócz wcześniej obsługiwanych VP8, H.264, VP9 i AV1.
- W narzędziach dla programistów internetowych rozszerzono możliwości panelu do analizy wydajności. Dodano raporty dotyczące żądań z użyciem starego protokołu HTTP/1.1, efektywności pracy z pamięcią podręczną oraz optymalizacji z wykorzystaniem właściwości font-display. Na stronie „Prywatność i bezpieczeństwo > Prywatność > Ciasteczka z innych stron” dodano możliwość wyszukiwania poszczególnych ciasteczek. Dodano eksperymentalną możliwość wyświetlania wskazówek dotyczących problemów z elementami i atrybutami w DOM.

Oprócz nowych funkcji i poprawek w nowej wersji usunięto 8 podatności. Wiele z nich wykryto w wyniku automatyzowanego testowania przy użyciu narzędzi takich jak AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer oraz AFL. Nie zidentyfikowano krytycznych problemów, które mogłyby obejść wszystkie poziomy ochrony przeglądarki i umożliwić uruchomienie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród za odkrywanie podatności w bieżącej wersji, firma Google wypłaciła 4 nagrody o łącznej wartości 10 tysięcy dolarów (jedna nagroda w wysokości 5000 USD, dwie nagrody po 2000 USD i jedna w wysokości 1000 USD).
Źródło: opennet.ru






