Статьи

«Серьезная уязвимость безопасности» в Greasemonkey

Производитель Greasemonkey , популярного расширения для опытных пользователей браузера Firefox, опубликовал предупреждение о серьезной уязвимости в текущей версии. Эта уязвимость потенциально может дать доступ ко всем файлам, хранящимся в системе, в которой работает расширение Greasemonkey в Firefox.

Расширение Greasemonkey предоставляет возможность устанавливать и запускать сценарии, связанные как с конкретными сайтами, так и со всеми сайтами в Интернете. Эти сценарии используют стандартные функции и синтаксис JavaScript, но расширение также предоставляет набор расширенных функций, доступных для пользовательских сценариев. Эти функции являются источником дыры в безопасности.

Как только пользовательский сценарий связан с сайтом, эти расширенные функции становятся доступными не только для пользовательского сценария, но и для любого кода сценария внутри самого сайта. Вредоносный сайт может подождать, пока пользователь не включит сценарий Greasemonkey, включенный для этого сайта, и затем использовать расширенные функции для доступа к личным файлам и данным, хранящимся в системе пользователя. Поскольку многие сценарии Greasemonkey предназначены для улучшения всех сайтов в Интернете (и поэтому включены для всех сайтов), это очень серьезная проблема.

Наибольшую обеспокоенность вызывает расширенная функция GM_xmlhttpRequest, которая позволяет пользовательским сценариям (и из-за этой дыры в безопасности вредоносный сайт) отправлять запросы GET и POST для любого URL, даже вне домена текущего сайта. Используя его для запроса URL-адреса file: //, вредоносный сайт может прочитать содержимое любого файла в системе или даже получить список локальных каталогов. Затем скрипт может сделать запрос POST для отправки этой информации на любой URL.

В то время как разработчик ищет хорошее решение этих проблем безопасности, он сделал доступной новую версию расширения, Greasemonkey 0.3.5 , в котором устранена поддержка всех расширенных функций, включая GM_xmlhttpRequest. Любой сценарий, использующий эту функцию, не сможет работать с этой «кастрированной» версией, но простые сценарии, которые просто изменяют существующий макет / функциональность сайта, должны работать нормально.