Специалист Брэндон Азад (Brandon Azad) из проекта Google Project Zero опубликовал краткий обзор эксплоитов для уязвимостей ядра iOS, затрагивающих версии iOS от 10 до 13.
mach_portal — iOS 10.1.1:
Эксплоит связан с уязвимостью (CVE-2016-7644) состояния гонки в set_dp_control_port () ядра XNU. Ее эксплуатация приводит к чрезмерному освобождению Mach-порта.
Цепочка эксплоитов 1 — iOS 10.1.1:
Эксплоит связан с уязвимостью записи за пределами линейной кучи указателей IOAccelResource в функции IOKit AGXAllocationList2::initWithSharedResourceList (). Это одна из трех цепочек эксплуатации , в которых используется только одна уязвимость ядра, доступная напрямую из изолированной программной среды Safari.
extra_recipe — iOS 10.2:
Уязвимость (CVE-2017-2370) на базе переполнения буфера кучи содержится в функции mach_voucher_extract_attr_recipe_trap, которая представляет собой системный вызов ядра Mach (или Mach trap). Техника эксплуатации данной уязвимости включает в себя многократные и преднамеренные сбои, и способы построения функций самоанализа ядра с использованием старых эксплоитов ядра.
Yalu102 — iOS 10.2:
Эксплоит связан с уязвимостью, также получившей CVE-идентификатор CVE-2017-2370. Вызов Mach-trap используется для создания выделения kalloc и немедленного переполнения из него контролируемыми данными, перезаписывая содержимое массива OOL-портов и вставляя указатель на поддельный Mach-порт в пользовательском пространстве. Получение сообщения с OOL-портами позволяет осуществлять отправку на поддельный Mach-порт, содержимым которого можно напрямую управлять.
ziVA — iOS 10.3.1:
Эксплоит для множественных уязвимостей в AppleAVE2, которые связаны с внешними методами, использующими указатели IOSurface в пространстве пользователя и доверяющих указателям IOSurface, считываемым из пространства пользователя.
async_wake — iOS 11.1.2:
Уязвимость ( CVE-2017-13861 ) содержится в IOSurfaceRootUserClient::s_set_surface_notify () и приводит к удалению дополнительной ссылки на Mach-порт и содержится в proc_list_uptrs () ядра XNU. Ее эксплуатация позволяет вызвать утечку указателей ядра из-за невозможности полной инициализации памяти кучи перед копированием содержимого в пользовательское пространство.
v0rtex — iOS 10.3.3:
Уязвимость ( CVE-2017-13861 ). Mach-порты распределены, и ссылка на один порт удаляется из-за уязвимости. Другие порты на странице освобождаются, позволяя получить право на «висящий». PoC-код для данной уязвимости использует один и тот же порт для первой и последующей регистрации.
Незавершенный эксплойт для уязвимости CVE-2018-4150 — iOS 11.2.6:
Уязвимость ( CVE-2018-4150 ) — состояние гонки в подсистеме BPF ядра XNU, эксплуатация которой приводит к линейному переполнению буфера в куче из-за увеличения длины буфера без перераспределения соответствующего буфера.