Команда Google Project Zero обнаружила уязвимость «высокой степени серьезности» в ядре macOS и работает с Apple над исправлением

Команда Google Project Zero хорошо известна тем, что выявляет ошибки и уязвимости в системах как самой Google, так и других крупных компаний. Совсем недавно команда Google сообщила и публично раскрыла уязвимость «высокой степени серьезности» в ядре macOS, которая может предоставить злоумышленнику доступ к компьютеру пользователя без его ведома.

Подробности, изложенные в трекере ошибок Chromium, через Neowin, объясняют уязвимость в ядре macOS от Apple. По-видимому, исследователи безопасности обнаружили, что если в смонтированное пользователем файловое изображение вносятся изменения, система виртуального управления не получает уведомления об этих изменениях. Таким образом, злоумышленнику потенциально может быть предоставлен доступ для выполнения вредоносных действий с этим смонтированным файловым образом без ведома конечного пользователя, пока не станет слишком поздно.

По-видимому, Google впервые сообщил об этой уязвимости Apple в ноябре 2018 года. Однако, поскольку с тех пор прошло 90 дней, а компания еще не выпустила исправление, уязвимость была раскрыта публично. Google обозначил проблему как «высокую степень серьезности», что означает, что ее влияние может быть довольно значительным.

Реклама — прокрутите вниз, чтобы узнать больше

К счастью, Apple признала проблему и начала сотрудничать с Google Project Zero над ее устранением (Apple регулярно благодарит Google за исправления в примечаниях к выпуску). Apple намерена исправить проблему в будущих версиях macOS, но конкретных сроков пока нет. Google предоставляет пример доказательства концепции на странице трекера ошибок, а также подробное объяснение ниже.

XNU имеет различные интерфейсы, которые позволяют создавать копии данных между процессами с механизмом «копирование при записи», включая дескрипторы сообщений вне строки в сообщениях mach. Важно, чтобы скопированная память была защищена от последующих изменений исходным процессом; в противном случае исходный процесс может использовать двойное чтение в целевом процессе.

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

Это означает, что если злоумышленник может изменять файл на диске, не информируя подсистему виртуального управления, это является проблемой безопасности. MacOS позволяет обычным пользователям монтировать образы файловых систем. Когда образ смонтированной файловой системы изменяется напрямую (например, путем вызова pwrite() на образе файловой системы), эта информация не передается в смонтированную файловую систему.

Еще о Google: