Фильтры Adblock Plus могут использоваться для выполнения произвольного кода

Исследователь Армин Себастьян (Armin Sebastian) обнаружил проблему, связанную с функцией фильтров $rewrite, появившейся в Adblock Plus в версии 3.2, вышедшей прошлым летом. Это новшество также поддержали разработчики AdBlock и uBlocker.

В сущности, $rewrite позволяет блокировщикам бороться с определенными попытками загрузки рекламы, слежкой за пользователями и так далее. Идея заключалась в том, что иногда проще перенаправить запрос, подпадающий под определенные критерии, на другой URL, чем просто его блокировать. Согласно оригинальной задумке разработчиков, адрес для перенаправления не содержит hostname, то есть должен располагаться на том же домене, а также не работает с запросами SCRIPT, SUBDOCUMENT, OBJECT и OBJECT_SUBREQUEST. Казалось бы, о безопасности не забыли, но Себастьян доказал, что это не совсем так.

ИБ-специалист объясняет, что при соблюдении ряда условий $rewrite может использоваться для атак на пользователей. Уязвимостью могут злоупотребить операторы списков фильтров: для этого понадобится найти сайт с открытым редиректом, разрешающий загрузку скриптов со сторонних ресурсов, а также использующий XMLHttpRequest или Fetch для их выполнения. Причем исследователь подчеркивает, что найти такой ресурс не так сложно, как может показаться, например, он использовал в качестве примера Google Maps.

Разработчики Adblock Plus уже опубликовали официальное заявление, где назвали подобные атаки маловероятными. Хотя разработчики заверили, что регулярно проверяют операторов списков фильтров и сами фильтры, и пока не выявляли никаких угроз, сообщается, что от функции $rewrite все же было решено избавиться.

В своем отчете Себастьян советует операторам сайтов не пренебрегать Content Security Policy или отказаться от открытых редиректов. Пользователям исследователь и вовсе предложил перейти на uBlock Origin, который не поддерживает $rewrite. Кстати, автор этого блокировкщика критиковал идею использования $rewrite из-за возможных проблем с безопасностью еще в прошлом году.

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.