La société Google a publié la version 142 de son navigateur web Chrome. En même temps, une version stable du projet libre Chromium, qui sert de base à Chrome, est également disponible. Le navigateur Chrome diffère de Chromium par l'utilisation des logos Google, un système de notification en cas de crash, des modules pour la lecture de contenu vidéo protégé contre la copie (DRM), un système de mise à jour automatique, l'activation constante de l'isolement Sandbox, la fourniture de clés pour les API Google et la transmission de paramètres RLZ lors des recherches. Pour ceux qui ont besoin de plus de temps pour les mises à jour, une branche Extended Stable est maintenue, accompagnée d'une période de 8 semaines. La prochaine version de Chrome 143 est prévue pour le 2 décembre.
Principales modifications dans Chrome 142 :
- Protection contre l'accès à la système local lors de l'interaction avec les sites publics. Lors des demandes d'un site dans un réseau public ou interne (intranet) vers adresses IP la système local ou l'interface loopback (127.0.0.0/8), le navigateur affichera à l'utilisateur une boîte de dialogue demandant la confirmation de l'opération. Les actions protégées comprennent les tentatives de chargement de ressources, les requêtes fetch() et les insertions iframe. La protection ne s'applique pas encore aux connexions via WebSockets, WebTransport et WebRTC, mais sera ajoutée pour ces technologies ultérieurement.
L'accès aux ressources internes est exploité par des attaquants pour réaliser des attaques CSRF sur des routeurs, des points d'accès, des imprimantes, des interfaces web d'entreprise et d'autres dispositifs et services acceptant des demandes uniquement de l'intérieur du réseau local. De plus, le scan de ressources internes peut être utilisé pour une identification indirecte ou pour collecter des informations sur le réseau local.
- Une interface simplifiée unique a été proposée pour l'association avec le compte Google et la synchronisation des données telles que les mots de passe enregistrés et les favoris. La synchronisation est intégrée à la connexion au compte et n'est pas présentée comme une fonctionnalité distincte dans les paramètres. Les utilisateurs peuvent connecter Chrome à leur compte Google et l'utiliser pour stocker des mots de passe, des favoris, l'historique de navigation et des onglets. Cette fonctionnalité est actuellement activée pour une partie des utilisateurs, et la couverture s'élargira progressivement.
- Un nouveau modèle d'isolement des processus — « Origin Isolation » — a été mis en place, selon lequel chaque source de contenu (origin — lien entre le protocole, de domaine et port, par exemple, «https://foo.example.com»), est isolé dans un processus de rendu distinct. Comme l'augmentation du fractionnement de l'isolation peut entraîner une consommation accrue de mémoire et une augmentation de la charge CPU, le nouveau mode d'isolation est activé uniquement sur les systèmes disposant de plus de 4 Go de RAM. Sur le matériel moins puissant, l'ancienne méthode d'isolation, qui isole dans un processus distinct toutes les différentes sources de contenu liées à un même site (par exemple, foo.example.com et bar.example.com), continuera d'être utilisée.
- Sur les systèmes Windows et macOS où la gestion centralisée de Chrome n'est pas appliquée, la désactivation automatique des extensions de navigateur installées de force a été mise en place en cas de violations mineures des règles de la boutique Chrome Web Store. Les violations mineures comprennent la présence de vulnérabilités potentielles, l'imposition d'une extension sans le consentement de l'utilisateur, des manipulations de métadonnées, des violations des règles concernant les données utilisateur et des informations erronées sur la fonctionnalité. Si l'utilisateur le souhaite, il peut réactiver l'extension désactivée.
- Dans la version Android, à l'instar des versions pour systèmes de bureau, un avertissement concernant les pages frauduleuses détectées par un grand modèle de langage basé sur l'analyse du contenu a été mis en œuvre. L'utilisation de l'IA est appliquée en mode de protection améliorée du navigateur (Enhanced Safe Browsing). Le modèle d'IA s'exécute côté client, mais en cas de détection de contenu suspect, une vérification supplémentaire est effectuée sur les serveurs de Google.
- Dans l'implémentation du protocole DTLS (Datagram Transport Layer Security, équivalent de TLS pour UDP) utilisé pour les connexions WebRTC, l'utilisation d'algorithmes de chiffrement post-quantique a été intégrée.
- Il a été mis en place la conservation du statut d'activation, déterminé par l'activité de l'utilisateur sur la page, après le passage à une autre page du même domaine. La conservation de l'activation facilitera le développement d'applications web multi-pages et résoudra des problèmes tels que le focus d'entrée lors de l'affichage par le site de son clavier virtuel.
- Des pseudo-classes «:target-before» et «:target-after» ont été ajoutées en CSS pour définir les marqueurs précédents et suivants, par rapport à la position de défilement actuelle («:target-current»).
- Dans les conteneurs de styles («@container») et la fonction «if()», l'utilisation de la syntaxe de plage (Range Syntax) est autorisée, telle que définie dans la spécification Media Queries Level 4. Cela permet d'utiliser des opérateurs mathématiques de comparaison et des opérateurs logiques pour définir des plages de valeurs. Par exemple, il est maintenant possible d'indiquer «@container style(—inner-padding > 1em)» et «background-color: if(style(attr(data-columns, type) > 2): lightblue; else: white);»
- Dans les éléments «<button>» et «<a>» un support pour l'attribut «interestfor» a été ajouté, permettant d'organiser des appels à l'action, comme afficher une fenêtre contextuelle lorsque l'utilisateur manifeste un intérêt pour l'élément. Les signes d'intérêt sont considérés par le navigateur comme des situations telles que le survol et le maintien du pointeur sur l'élément, l'appui sur des touches de raccourci ou le maintien de l'appui sur un écran tactile. Lorsqu'un intérêt est détecté sur un élément avec l'attribut «interestfor», le navigateur génère un événement InterestEvent.
- Des améliorations ont été apportées aux outils pour les développeurs web. Un bouton a été ajouté dans le coin supérieur droit pour appeler rapidement l'assistant AI. L'élément du menu contextuel «Ask AI» a été renommé en «Debug with AI» et étendu par la possibilité d'effectuer des actions immédiates en fonction du contexte. Dans la console web et le panneau de code, l'assistant AI Gemini peut maintenant générer des recommandations avec du code.

Les outils pour les développeurs web ont été intégrés au service GDP (Google Developer Program). Les développeurs peuvent désormais se connecter à leur profil dans le GDP directement à partir de Chrome DevTools et gagner des récompenses pour avoir effectué certaines tâches dans cette interface.

En plus des nouveautés et de la correction de bugs, la nouvelle version corrige 20 vulnérabilités. Beaucoup de ces vulnérabilités ont été identifiées grâce à des tests automatisés avec les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucune problématique 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é identifiée. Dans le cadre du programme de récompense pour la découverte de vulnérabilités pour la version actuelle, Google a établi 20 primes totalisant 130 000 dollars (deux primes de 50 000 dollars, une prime de 10 000 dollars et trois primes de 3 000 dollars, deux primes de 2 000 dollars et trois primes de 1 000 dollars). Le montant de 8 récompenses n'a pas encore été déterminé.
On peut également noter la découverte d'une vulnérabilité non corrigée dans le moteur Blink, qui entraîne un plantage et un gel du navigateur lors de l'exécution de certains codes JavaScript. Cette vulnérabilité est due à des problèmes architecturaux dans le moteur de rendu, liés à l'absence de restrictions sur l'intensité des opérations de mise à jour de la propriété « document.title ». L'absence de limites permet d'utiliser « document.title » pour apporter des dizaines de millions de modifications au DOM par seconde, ce qui, après quelques secondes, entraîne un gel de l'interface en raison du blocage du thread principal et d'une consommation mémoire significative, et après 15 à 60 secondes le navigateur plante.
Source : opennet.ru


