Vulnérabilité dans Adblock Plus qui permet l'exécution de code lors de l'utilisation de filtres douteux

Dans le bloqueur de publicité Adblock Plus identifié vulnérabilité, en permettant organiser l'exécution de code JavaScript dans le contexte de sites, en cas d'utilisation de filtres non vérifiés préparés par des attaquants (par exemple, lors de la connexion d'ensembles de règles tiers ou par substitution de règles lors d'une attaque MITM).

Les auteurs de listes avec des jeux de filtres peuvent organiser l'exécution de leur code dans le contexte des sites ouverts par l'utilisateur en ajoutant des règles avec l'opérateur "récrire", qui permet de remplacer une partie de l'URL. L'opérateur de réécriture ne vous permet pas de remplacer l'hôte dans l'URL, mais il vous permet de manipuler librement les arguments de la requête. Seul le texte peut être utilisé comme masque de remplacement et la substitution des balises de script, d'objet et de sous-document est autorisée. est bloqué.

Cependant, l'exécution de code peut être réalisée grâce à une solution de contournement.
Certains sites, notamment Google Maps, Gmail et Google Images, utilisent la technique du chargement dynamique de blocs JavaScript exécutables, transmis sous forme de texte brut. Si le serveur autorise la redirection des requêtes, alors la redirection vers un autre hébergeur peut être réalisée en modifiant les paramètres de l'URL (par exemple, dans le contexte de Google, une redirection peut être effectuée via l'API "google.com/search"). Outre les hébergeurs permettant la redirection, une attaque peut également être menée contre les services permettant la publication de contenus utilisateur (hébergement de codes, plateformes de publication d'articles, etc.).

La méthode d'attaque proposée n'affecte que les pages qui chargent dynamiquement des chaînes de code JavaScript (par exemple, via XMLHttpRequest ou Fetch) puis les exécutent. Une autre limitation importante est la nécessité d'utiliser une redirection ou de placer des données arbitraires du côté du serveur d'origine émettant la ressource. Cependant, pour démontrer la pertinence de l'attaque, il est montré comment organiser l'exécution de votre code lors de l'ouverture de maps.google.com, en utilisant une redirection via « google.com/search ».

Le correctif est toujours en préparation. Le problème affecte également les bloqueurs AdBlock и uBlock. Le bloqueur uBlock Origin n'est pas concerné par le problème, puisqu'il ne supporte pas l'opérateur « rewrite ». À une époque, l'auteur d'uBlock Origin
refusé ajouter la prise en charge de la réécriture, citant des problèmes de sécurité potentiels et des restrictions insuffisantes au niveau de l'hôte (une option querystrip a été proposée à la place de la réécriture pour nettoyer les paramètres de requête au lieu de les remplacer).

Les développeurs d'Adblock Plus considèrent que de véritables attaques sont peu probables, car toutes les modifications apportées aux listes de règles standard sont examinées et la connexion de listes tierces est extrêmement rare parmi les utilisateurs. La substitution de règles via MITM est empêchée par l'utilisation par défaut de HTTPS pour le téléchargement des listes de blocage standard (pour d'autres listes, il est prévu d'interdire le téléchargement via HTTP dans une prochaine version). Les directives peuvent être utilisées pour bloquer une attaque côté site CSP (Content Security Policy), grâce à laquelle vous pouvez déterminer explicitement les hôtes à partir desquels les ressources externes peuvent être chargées.

Source: opennet.ru

Ajouter un commentaire