В Google Chrome найдена уязвимость, позволяющая сайту определить установленные расширения

Особенность реализации работы расширений в Google Chrome позволяет определить какие расширения установлены у пользователя, из-за того что веб-браузер позволяет любой веб-странице выполнять запрос document.createElement(), в качестве аргумента для которого может выступать уникальный идентификатор расширения. Все эти идентификаторы можно загрузить из каталога расширений Google Chrome. Таким образом веб-сайт, путем проверки идентификаторов по списку, может увидеть все расширения, которые использует пользователь.
Демонстрацию работающего кода можно посмотреть здесь. Демонстрационная страница не покажет все установленные расширения, потому что автор кода добавил проверку только на некоторые самые популярные расширения, однако полный их список можно без труда загрузить с данной страницы.
Следующий код демонстрирует реализацию этой уязвимости:

   var detect = function(base, if_installed, if_not_installed) {
       var s = document.createElement('script');
       s.onerror = if_not_installed;
       s.onload = if_installed;
       document.body.appendChild(s);
       s.src = base + '/manifest.json';
   }
   detect('chrome-extension://' + addon_id_youre_after, function());

Данная уязвимость приводит к тому, что заинтересованные веб сайты могут следить за пользователем, генерируя достаточно уникальный идентификатор пользователя с учётом установленных расширений, даже если пользователь стирает все идентификационные cookie после работы с этим сайтом. Зная, какие расширения установлены, можно также организовать на них целенаправленную атаку.



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов