Im Werbeblocker Adblock Plus gibt es eine Schwachstelle, JavaScript-Code im Kontext von Websites auszuführen, wenn unsichere Filter verwendet werden, die von Angreifern vorbereitet wurden (zum Beispiel durch das Hinzufügen von Drittanbietersatzregeln oder durch Regeländerungen während eines MITM-Angriffs).
Autoren von Filterregellisten können die Ausführung ihres Codes im Kontext der vom Benutzer geöffneten Websites durch das Hinzufügen von Regeln mit dem Operator „“ ermöglichen, der einen Teil der URL ersetzen kann. Der Rewrite-Operator erlaubt es nicht, den Host in der URL zu ändern, gibt jedoch die Freiheit, die Abfrageparameter zu manipulieren. Als Maskierung für den Austausch ist nur Text zulässig, während das Einfügen von script-, object- und subdocument-Tags .
wird. Dennoch kann die Codeausführung auf indirektem Wege erreicht werden.
Einige Websites, einschließlich Google Maps, Gmail und Google Images, verwenden die Technik des dynamischen Ladens von ausführbaren JavaScript-Blocks, die als reiner Text übertragen werden. Wenn der Server eine Umleitung von Anfragen zulässt, kann die Weiterleitung zu einem anderen Host erreicht werden, indem die URL-Parameter geändert werden (zum Beispiel kann im Zusammenhang mit Google die Umleitung über die API ""). Neben Hosts, die Umleitungen erlauben, kann ein Angriff auch gegen Dienste gerichtet werden, die die Veröffentlichung von Benutzerinhalten ermöglichen (Code-Hosting, Artikelplattformen usw.).
Die vorgeschlagene Angriffsmethode betrifft nur Seiten, die dynamisch Linien mit JavaScript-Code laden (zum Beispiel über XMLHttpRequest oder Fetch) und diese dann ausführen. Eine weitere wichtige Einschränkung ist die Notwendigkeit, eine Umleitung oder das Platzieren arbiträrer Daten auf der Seite des Ursprungsservers, der die Ressource liefert, zu verwenden. Dennoch zeigt die Demonstration der Relevanz des Angriffs, wie man die Ausführung eigenen Codes beim Öffnen von maps.google.com organisiert, indem man die Umleitung über "google.com/search" verwendet.
Die Korrektur befindet sich noch in der Vorbereitung. Das Problem betrifft auch die Blocker. und . Der uBlock Origin Blocker ist von dem Problem nicht betroffen, da er den «rewrite»-Operator nicht unterstützt. Der Autor von uBlock Origin
die Unterstützung für rewrite hinzuzufügen, mit Verweis auf mögliche Sicherheitsprobleme und unzureichende Host-Level-Einschränkungen (statt rewrite wurde die Option querystrip vorgeschlagen, um Abfrageparameter zu bereinigen, anstatt sie zu ersetzen).
Die Entwickler von Adblock Plus halten reale Angriffe für unwahrscheinlich, da alle Änderungen an den Standard-Regellisten einer Überprüfung unterzogen werden und die Verbindung zu Drittanbieter-Listen von den Nutzern äußerst selten praktiziert wird. Ein Regelwechsel durch MITM wird durch die standardmäßige Verwendung von HTTPS für den Download der Standard-Blocklisten ausgeschlossen (für zukünftige Versionen ist geplant, den Download über HTTP für andere Listen zu verbieten). Zur Abwehr von Angriffen auf der Seite der Websites können die Direktiven (Content Security Policy) angewendet werden, durch die eindeutig definiert werden kann, von welchen Hostnamen externe Ressourcen geladen werden dürfen.
Quelle: opennet.ru
