Согласно отчету Google Project Zero, в Apple Safari уже в третий раз исправляют одну и ту же уязвимость, которая изначально была обнаружена в 2013 году, затем вновь проявилась в 2016 году после обновления кода, а теперь была обнаружена и исправлена снова.
Проблема, о которой идет речь, отслеживается под идентификатором CVE-2022-22620 (8,8 балла по шкале CVSS) и представляет собой use-after-free баг в компоненте WebKit. Уязвимость может использоваться для выполнения произвольного кода, и в начале февраля 2022 года Apple выпустила патчи для этой проблемы в Safari, iOS, iPadOS и macOS, предупредив, что уязвимость уже могла находиться под атаками.
«Уже почти середина 2022 года, а мы, похоже, наблюдаем тренд на такие “зомби-уязвимости”, — пишет Мэдди Стоун (Maddie Stone), ведущая исследовательница команды Google Project Zero — Злоумышленникам не нужны новые ошибки, чтобы эффективно атаковать пользователей с помощью 0-day, вместо этого они могут использовать уязвимости, тесно связанные с ранее обнаруженными ошибками».
В прошлом году Стоун уже писала о том, что четверть всех уязвимостей нулевого дня, замеченных Google Project Zero в 2020 году, оказалась тесно связана со старыми уязвимостями, информация о которых была раскрыта публично. Как правило, такое происходит из-за неполного исправления багов.
Тем не менее, ситуация с Safari немного отличается. В этом случае Apple полностью исправила проблему в 2013 году, но патч был «испорчен» в 2016 году, после реструктуризации кода.
«Мы не знаем, как долго злоумышленники эксплуатировали эту уязвимость, но известно, что уязвимость присутствовала в коде (опять) в течение пяти лет: с декабря 2016 года по январь 2022 года», — пишет Стоун.
Эксперт рассказала, что оригинальная проблема 2013 года и родственная ей ошибка, обнаруженная в этом году, связаны с History API и могли быть использованы с помощью специально подготовленного веб-контента для удаленного выполнения произвольного кода.
«Это та же ошибка, но ее срабатывание достигается другим путем. Вот почему тестовый кейс 2013 года не приводил к сбою той версии WebKit, которая должна быть уязвима для CVE-2022-22620», — объяснила исследовательница.
По мнению Стоун, рефакторинг кода является одной из основных проблем, стоящих перед разработчиками. Дело в том, что разработчикам и командам безопасности нужно время для проверки исправлений, особенно тех, которые относятся безопасности.
«В данном случае, спустя девять лет после того, как уязвимость была отсортирована, исправлена, а патч протестирован и выпущен [в релиз], весь процесс пришлось повторить снова, только на этот раз под давлением продолжающейся эксплуатации», — резюмирует Стоун.
Источник: xakep