Примечательно, что уязвимость вызвана ошибкой в подсистеме PROCA (Process Authenticator), разработанной Samsung для повышения защищённости платформы Android. PROCA обеспечивает отслеживание подлинности процессов и их соответствие изначально запущенным исполняемым файлам. Проверка осуществляется на основе цифровой подписи, хранящейся в расширенных атрибутах файла.
Из-за логической ошибки не исключена ситуация, когда аутентифицированный процесс завершился, а с тем же PID создан другой процесс, и PROCA посчитает этот процесс аутентифицированным. Более того, в случае несоответствия отслеживаемого и реального состояний процесса возможно возникновение состояния гонки (race condition), при котором создаются условия для перезаписи других структур (исходный буфер оказывается освобождённым и на его месте находятся уже другие данные).
Исследователи смогли подготовить прототип эксплоита, способного читать и записывать любые данные в памяти ядра. Несмотря на включение в ядре Samsung механизмов защиты от эксплуатации уязвимости, полученная возможность чтения и записи может быть использована для извлечения конфиденциальных данных из кэша ФС. Например, в прототипе эксполоита продемонстрировано определение содержимого БД учётных записей /data/system_ce/0/accounts_ce.db, включающей токены аутентификации.
Проблема демонстрирует опасность необдуманной модификации ядра, код которого таит много подводных камней, и внесение изменений без рецензирования со стороны мэйнтейнеров ядра может привести к неожиданным проблемам, даже если модификации предназначены для реализации возможностей для повышения безопасности.
Источник: http://www.opennet.ru/opennews/art.shtml?num=52361