В блокера на реклами Adblock Plus уязвимост, позволява организирането на изпълнението на JavaScript код в контекста на сайтове, ако се използват непроверени филтри, подготвени от злонамерени лица (например, при свързване на външни набори от правила или чрез подмяна на правила по време на MITM атака).
Авторите на списъците с набори от филтри могат да организират изпълнението на своя код в контекста на отворените от потребителя сайтове чрез добавяне на правила с оператора ««, който позволява подмяна на част от URL. Операторът rewrite не позволява подмяна на хоста в URL, но дава възможност свободно да манипулираме заявките. Като маска за подмяна се допуска използването само на текст, а вмъкването на тагове script, object и subdocument .
Въпреки това, изпълнението на кода може да бъде постигнато по заобиколен начин.
Някои сайтове, включително Google Maps, Gmail и Google Images, прилагат техника за динамично зареждане на изпълними JavaScript блокове, предавани под формата на гол текст. Ако сървърът допуска пренасочване на заявки, то пренасочването към друг хост може да се постигне, като се подменят параметрите на URL (например, в контекста на Google пренасочването може да бъде извършено чрез API ««). Освен хостовете, допускащи пренасочване, атаката може да бъде извършена и срещу услуги, допускащи публикуване на потребителско съдържание (хостинги на код, платформи за публикуване на статии и т.н.).
Предложеният метод за атака засяга само страниците, които динамично зареждат редове с JavaScript код (например, чрез XMLHttpRequest или Fetch) и след това ги изпълняват. Друго важно ограничение е необходимостта от използване на пренасочване или публикуване на произволни данни от страна на изходния сървър, предоставящ ресурса. Въпреки това, за демонстрация на актуалността на атаката е показано как да се организира изпълнението на своя код при отваряне на maps.google.com, използвайки пренасочване чрез «google.com/search».
Поправката в момента се подготвя. Проблемът също засяга блокировките и . Блокировачът uBlock Origin не е податлив на проблема, тъй като не поддържа оператора «rewrite». В даден момент авторът на uBlock Origin
добавяне на поддръжка за rewrite, като се посочват потенциални проблеми със сигурността и недостатъците на ограниченията на ниво хост (вместо rewrite беше предложена опция querystrip за почистване на параметрите на заявките вместо тяхната подмяна).
Разработчиците на Adblock Plus смятат, че провеждането на реални атаки е малко вероятно, тъй като всички изменения в стандартните списъци с правила преминават през рецензия, а свързването на външни списъци е изключително рядко практикувано от потребителите. Подменянето на правилата чрез MITM е изключено с приложението по подразбиране на HTTPS за изтегляне на стандартни списъци за блокиране (за останалите списъци е планирано да се забрани изтеглянето по HTTP в бъдеща версия). За блокиране на атаки на страната на сайтовете могат да се прилагат директиви (Content Security Policy), чрез които може да се определи изрично кои хостове имат право да зареждат външни ресурси.
Източник: opennet.ru
