Эксперт компании F-Secure Расмус Стен (Rasmus Sten) обнародовал proof-of-concept эксплоит для уязвимости CVE-2021-1810, позволяющей обойти защиту Gatekeeper в macOS.
Упомянутая уязвимость была исправлена инженерами Apple в апреле 2021 года, с релизом macOS Big Sur 11.3 и обновления безопасности 2021-002 для Catalina. В сущности, она позволяла обойти все три уровня защиты, которые Apple применяет для защиты от загрузки вредоносных файлов: карантин, Gatekeeper и нотаризацию.
CVE-2021-1810 demo video pic.twitter.com/9JmJhaJD4W
— Rasmus Sten (@pajp) April 28, 2021
Корень проблемы кроется в компоненте Archive Utility в macOS Big Sur и Catalina, то есть эксплуатировать баг можно с помощью специально подготовленного файла ZIP. Злоумышленнику нужно лишь заставить пользователя загрузить и открыть такой архив, и вредоносный код будет выполнен. То есть уязвимость позволит выполнить неподписанные бинарники на устройствах под управлением macOS.
Как объясняет Стен, проблема была связана с тем, как Archive Utility обрабатывает пути к файлам. В частности, для путей длиной более 886 символов атрибут com.apple.quarantine не применяется, что приводит к обходу Gatekeeper.
Позже, изучая то, как ОС работает с длинными именами файлов, эксперт обнаружил, что некоторые компоненты macOS ведут себя совсем неожиданно, если общая длина пути достигает определенного предела. В итоге он смог создать архив с иерархической структурой, длина пути которого была достаточной для того, чтобы Safari вызывал Archive Utility для его распаковки, и чтобы Archive Utility не применял атрибут com.apple.quarantine; но в то же время путь был достаточно коротким, чтобы его можно было просматривать с помощью Finder, а macOS могла выполнить код внутри.
Опубликованный теперь PoC-эксплоит исследователя создает архив с длиной пути, необходимой для эксплуатации CVE-2021-1810, вместе с символической ссылкой, чтобы файл ZIP выглядел нормально.