Исследователи из компании Quarkslab опубликовали подробную информацию о критической уязвимости, которую они обнаружили в чипе Google Titan M ранее в этом году.
Напомню, что вышедший в 2018 году Titan M представляет собой SoC (system-on-a-chip), предназначенный исключительно для обработки конфиденциальных данных и процессов, таких как Verified Boot, шифрование диска, защита экрана блокировки, безопасные транзакции и многое другое. В частности Titan M предназначен для повышения безопасности устройств Pixel, включая безопасную загрузку.
Эксперты из Quarkslab рассказывают, что обнаруженная ими уязвимость получила идентификатор CVE-2022-20233 и была исправлена с выходом июньских патчей для Android. Тогда специалисты Google описывали этот баг как критическую проблему повышения привилегий.
По словам исследователей, уязвимость связана не только с повышения привилегий, но также может использоваться для выполнения кода на чипе Titan M. С технической точки зрения баг представляет собой проблему out-of-bounds записи, которая связана с некорректной верификацией границ. При этом в отчете подчеркивается, что эксплуатация этой проблемы для локального повышения привилегий не требует взаимодействия с пользователем.
Quarkslab сообщает, что ошибка была обнаружена во время фаззинга Titan M, когда было замечено, что «прошивка пытается записать 1 байт в нераспределенную область памяти». Оказалось, что повторение этого действия провоцирует out-of-bounds запись и в итоге приводит к возникновению CVE-2022-20233.
Исследователи отмечают, что память Titan M полностью статична. Поэтому им пришлось напрямую подключиться к консоли UART, чтобы получить доступ к журналам отладки и лишь после этого был создан эксплоит, который позволил считать произвольную память с чипа, похитить хранящиеся там секреты, а также получить доступ к загрузочному ПЗУ.
«Одним из самых интересных последствий этой атаки является возможность получить любой ключ, защищенный StrongBox, преодолев самый высокий уровень защиты Android Keystore. Также как и в TrustZone, эти ключи можно использовать только внутри Titan M, когда они хранятся в зашифрованном блобе на устройстве», — рассказывают в Quarkslab.
Исследователи уведомили Google об уязвимости еще в марте 2022 года. Компания выпустила патч в июне и сначала выплатила экспертам лишь 10 000 долларов вознаграждения по программе bug bounty. Однако после предоставления эксплоита, демонстрирующего выполнение кода и кражу секретов, компания увеличила награду до 75 000 долларов.