Skip to main content

Серьезная ошибка Safari, раскрытая в этом сообщении в блоге от FingerprintJS, может раскрыть информацию о вашей недавней истории просмотров и даже некоторую информацию об учетной записи Google, в которой вы вошли.

Ошибка в реализации IndexedDB в Safari на Mac и iOS означает, что веб-сайт может видеть имена баз данных для любого домена, а не только для своего собственного. Затем имена баз данных можно использовать для извлечения идентифицирующей информации из таблицы поиска. Вы можете попробовать это сами с помощью этой живой демонстрации.

Например, службы Google хранят экземпляр IndexedDB для каждой из ваших зарегистрированных учетных записей с именем базы данных, соответствующим вашему идентификатору пользователя Google.

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

Доказательство концепции содержит только справочную таблицу около 30 доменных имен, однако нет никаких причин, по которым этот метод нельзя было бы применить к гораздо большему набору. Почти любой веб-сайт, использующий JavaScript API IndexedDB, может быть уязвим для такого извлечения данных.

Ошибка заключается просто в том, что имена всех баз данных IndexedDB доступны любому сайту; доступ к фактическому содержанию каждой базы данных ограничен. Исправление — и правильное поведение, наблюдаемое в других браузерах, таких как Chrome, — будет заключаться в том, что веб-сайт может видеть только базы данных, созданные с тем же доменным именем, что и его собственное.

Все текущие версии Safari на iPhone, iPad и Mac являются уязвимыми. FingerprintJS сообщает, что сообщила об ошибке в Apple 28 ноября, но она до сих пор не устранена.