La société Google a publié la version de son navigateur web Chrome 136. En même temps, une version stable du projet libre Chromium, qui sert de base à Chrome, est également disponible. Le navigateur Chrome se distingue de Chromium par l'utilisation des logos de Google, un système d'envoi de notifications en cas de crash, des modules pour la lecture de contenus vidéo protégés (DRM), un système de mise à jour automatique, une isolation Sandbox constamment activée, la fourniture de clés pour l'API Google et la transmission de paramètres RLZ lors des recherches. Pour ceux qui ont besoin de plus de temps pour effectuer ces mises à jour, une branche Extended Stable est également maintenue pendant 8 semaines. La prochaine version de Chrome 137 est prévue pour le 27 mai.
Principales modifications de Chrome 136 :
- Ajout d'une protection contre les fuites d'informations concernant les pages précédemment visitées, causées par l'utilisation du pseudo-classe CSS «:visited», qui permet de personnaliser l'apparence des liens déjà ouverts. Avant la version Chrome 136, le fait de cliquer sur un lien modifiait l'apparence de ce lien sur tous les sites affichant ce lien, peu importe de quel site provenait le clic. Ainsi, un attaquant pouvait déterminer si l'utilisateur avait précédemment ouvert des liens qui l'intéressaient en analysant les changements d'apparence de ces liens. Par exemple, si l'on crée une liste de liens vers différentes pages, les pages déjà consultées dans cette liste seront marquées d'une couleur différente par le navigateur, ce qui permet de déduire si ces liens avaient déjà été ouverts.
Pour bloquer les fuites d'informations sur les liens visités, Chrome a mis en œuvre l'isolement du traitement du sélecteur «:visited» en lien avec le site visité, c'est-à-dire que les éléments sont désormais stylisés avec «:visited» uniquement s'ils ont été ouverts précédemment à partir du site actuel et en association avec l'iframe actuel. Cet isolement est réalisé par le hachage du style des liens visités en utilisant comme clé trois composants : le lien, le site de premier niveau et l'hôte utilisé dans l'iframe.

Par exemple, si un lien a été cliqué depuis le site «A», ce lien sera désormais mis en surbrillance uniquement sur le site «A» et restera inchangé sur le site de l'attaquant. Une exception est faite uniquement pour les iframes chargées depuis le site principal (same-origin) et les liens vers le site actuel. Ainsi, lors de l'ouverture du site «A», les liens vers le site «A» seront surlignés même si les clics sur ceux-ci provenaient d'un autre site, mais les autres liens seront surlignés seulement si les clics provenaient du site «A».


Dans Firefox, la protection contre de telles fuites a été ajoutée en 2010, mais des méthodes pour la contourner existaient. Par exemple, en 2024, Firefox 122 a éliminé la possibilité d'analyser la couleur des pixels à l'aide de filtres utilisant le paramètre currentColor, et les manipulations avec la balise canvas dans SVG.
- Dans la version pour Android, la transmission à serveurs Google de télémétrie avec des données sur les fichiers APK téléchargés via le navigateur. Pour l'instant, la fonctionnalité se limite à l'envoi de télémétrie, mais à l'avenir, elle sera utilisée pour afficher des avertissements et bloquer le téléchargement de fichiers APK malveillants. La vérification est effectuée uniquement si le mode de protection avancée du navigateur est activé dans les paramètres (Safe Browsing > Enhanced protection).
- Pour le débogage à distance, il est désormais nécessaire de spécifier un répertoire séparé pour les données, défini au moment du lancement à l'aide du paramètre «—user-data-dir», qui doit être indiqué avec les paramètres «—remote-debugging-pipe» ou «—remote-debugging-port». En utilisant le répertoire par défaut sous Windows, Linux et macOS, le débogage à distance ne fonctionnera plus. La raison de ce changement est de contrer les logiciels malveillants utilisant le débogage à distance pour extraire des données de Google Chrome. Lors de l'utilisation d'un répertoire séparé, une autre clé de cryptage est appliquée, empêchant l'accès aux données de travail de l'utilisateur dans le répertoire principal. Ce changement ne s'applique qu'à Chrome et pas à Chromium.
- L'apparence des barres de défilement a été modernisée sur les plateformes Linux et Windows. En cas d'inactivité, la barre de défilement est cachée et n'apparaît que lors du déplacement sur la page. Pour gérer l'activation de la nouvelle apparence des barres de défilement, des paramètres sont proposés à chrome://flags#fluent-overlay-scrollbars et chrome://flags#fluent-scrollbars.


- Dans la fonction CSS attr(), l'argument de type «string» a été renommé en «raw-string», conformément à la décision du groupe de travail qui supervise le développement des spécifications CSS. Ce changement vise à éliminer toute confusion due à la similarité des expressions «attr(foo type())» et «attr(foo string)».
- Dans l'API ProgressEvent, utilisée pour créer des indicateurs de progression, les attributs «loaded» et «total» utilisent désormais le type «double» au lieu du type «unsigned long long», ce qui correspond au comportement de l'élément HTML
- Pour échapper les chaînes utilisées à l'intérieur des expressions régulières, une méthode statique «RegExp.escape» a été proposée. Les chaînes échappées à l'aide de RegExp.escape peuvent être utilisées en toute sécurité comme motif dans le constructeur RegExp().
- Le site est autorisé à créer automatiquement des clés Passkey basées sur les identifiants déjà enregistrés pour ce site. La création de Passkey se fait sans afficher une boîte de dialogue modale séparée, si l'utilisateur a déjà confirmé la création d'identifiants pour le site.
- Une propriété CSS dynamic-range-limit a été ajoutée pour limiter la luminosité maximale du contenu HDR.
- Dans l'API Speculation Rules (), utilisée pour configurer le préchargement des ressources, il est désormais possible d'indiquer un champ optionnel «tag» pour suivre la source. Le contenu de ce champ sera envoyé via l'en-tête HTTP Sec-Speculation-Tags.
- Dans WebRTC et l'API MediaRecorder, le codec H265 (HEVC) a été ajouté en plus des codecs précédemment pris en charge VP8, H.264, VP9 et AV1.
- Dans les outils pour développeurs web, les capacités du panneau d'analyse des performances ont été étendues. Des rapports sur les requêtes utilisant l'ancien protocole HTTP/1.1, l'efficacité du travail avec le cache et l'optimisation par la propriété font-display ont été ajoutés. Sur la page «Confidentialité et sécurité > Confidentialité > Cookies tiers», il est désormais possible de rechercher des cookies spécifiques. Une fonctionnalité expérimentale permettant d'afficher des suggestions sur les problèmes liés aux éléments et attributs dans le DOM a également été ajoutée.

En plus des nouveautés et des corrections de bogues, la nouvelle version corrige 8 vulnérabilités. Beaucoup de ces vulnérabilités ont été identifiées grâce à des tests automatisés réalisés avec les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucun problème critique permettant de contourner tous les niveaux de protection du navigateur et d'exécuter du code en dehors de l'environnement sandbox n'a été détecté. Dans le cadre du programme de récompenses pour la découverte de vulnérabilités, Google a versé 4 primes totalisant 10 000 dollars (une prime de 5 000 dollars, deux primes de 2 000 dollars et une de 1 000 dollars).
Source : opennet.ru






