Группа американских исследователей обнаружила в процессорах Apple Silicon на микроархитектурном уровне серьёзную уязвимость, позволяющую извлекать секретные криптографические ключи для доступа к конфиденциальным данным. Исправить её традиционным способом нельзя.
Уязвимость под названием GoFetch скрывается в механизме предварительной загрузки данных DMP (Data Memory-dependent Prefetcher), который загружает содержимое памяти в кэш процессора до того, как эти данные потребуются выполняемому коду. Это сокращает задержку и повышает скорость выполнения операций.
Проблема в том, что DMP делает прогнозы необходимых данных на основе предыдущих шаблонов доступа, и злоумышленники могут использовать этот механизм для кражи информации. В частности, DMP может загружать в кэш конфиденциальные данные, поскольку путает содержимое памяти со значением указателя, используемым для загрузки других сведений. По словам специалистов, злоумышленникам для этих конфиденциальных данных не требуются root-права, а достаточно те же прав, что необходимы большинству сторонних приложений, установленных в macOS.
Устранить уязвимость обычным патчем не получится, так как требуется отключение или полный пересмотр работы технологии DMP, что может привести к значительному понижению производительности.