Сотрудники российской ИБ-компании Digital Security обнаружили уязвимость в движке WebKit, на котором работает браузер Safari компании Apple. Баг был найден исследователями кибербезопасности Егором Карбутовым и Егором Салтыковым, уровень его критичности оценивается как средний.
Исследователи сообщают, что уязвимыми являются все системы и устройства, где используется браузер Safari: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6 и macOS Sierra 10.12.6, iPhone 5 и выше, iPad 4-го поколения и выше, iPod touch 6-го поколения и Apple TV 4-го поколения.
Это все довольно современные системы и устройства. OS X Yosemite 10.10.5 вышла в июле 2015 г., OS X El Capitan 10.11.6 — в июле 2016 г., macOS Sierra 10.12.6 — в июле 2017 г. iPhone 5 и iPad 4 стали доступны в 2012 г., iPod touch 6 — в июле 2015 г., Apple TV 4 — в сентябре 2015 г. Технические особенности
Как удалось установить исследователям, процедура document.implementation в Safari содержит логическую ошибку. Вообще в процессе document.implementation создаются DOM-представления HTML-кода страницы, то есть представления документов в виде Document Object Model — дерева объектов, в которое можно вносить изменения с помощью Javascript.
Когда HTML-документы обрабатываются с помощью функции DOMParser, предназначенной для парсинга (синтаксического анализа) HTML, эта функция выполняет код Javascript, чего происходить не должно. Это схема просматривается только в Safari, в отличие от таких браузеров как Firefox, Edge и Chrome.
Достаточно подстановки в DOMParser кода в чистом виде, что может сделать один из веб-сервисов, чтобы пользователь стал уязвим для XSS-атаки. Результатами такой атаки может быть фишинг, кража конфиденциальных данных, выполнение хакером различных действий от имени пользователя и т. п. Реакция компании
Исследователи Digital Security узнали о существовании бага в конце апреля и незамедлительно оповестили о нем Apple. По словам Карбутова, Apple отнеслась к проблеме профессионально, в течение суток приняв уязвимость на рассмотрение. В дальнейшем никакой дополнительной информации от ИБ-компании ей не потребовалось.
За месяц до выхода обновления с патчем Apple попросила Карбутова проверить, исправлена ли уязвимость в новых бета-версиях iOS и O SX. В обновлениях от 19 июля компания закрыла уязвимость, присвоив ей название CVE-2017-7038.