32 бита боли. Почему владельцам старых смартфонов стоит бояться свежей ошибки в Linux

32 бита боли. Почему владельцам старых смартфонов стоит бояться свежей ошибки в Linux

Разбираемся, как работает CVE-2025-38352 — новая цифровая западня.

image

Уязвимость в реализации POSIX CPU таймеров ядра Linux стала предметом обсуждения после публикации рабочего PoC-эксплойта. Речь идёт об ошибке CVE-2025-38352 с типичным сценарием use-after-free, которая затрагивает функцию handle_posix_cpu_timers(), отвечающую за обработку сработавших таймеров в процессе переключения задач на уровне процессора.

Суть уязвимости заключается в гонке между операциями, происходящими при освобождении ресурсов для задач, перешедших в состояние зомби, и удалением соответствующего таймера. Если таймер освобождается механизмом RCU, а его структура продолжает использоваться, возникает сценарий с обращением к уже несуществующей области памяти.

В рамках демонстрации эксплойта создаётся вспомогательный поток с установленным таймером, который срабатывает сразу после перевода потока в состояние зомби. Родительский процесс в это же время запускает удаление таймера, используя ptrace. При совпадении операций в нужный временной интервал можно добиться обращения к уже освобождённой памяти, что и позволяет нарушить целостность данных в ядре.

Исследование подтверждает, что уязвимость актуальна лишь для 32-битных Android-устройств на базе архитектуры ARM. Более современные системы с 64-битным ядром защищены благодаря включённой опции CONFIG_POSIX_CPU_TIMERS_TASK_WORK, которая предотвращает подобную эксплуатацию. Поэтому применение эксплойта остаётся ограниченным определёнными конфигурациями Android, где защита отсутствует.

Для успешной проверки PoC требуется специфическая среда: ядро версии 6.12.33, мультипроцессорная конфигурация и отключённая система обнаружения ошибок памяти KASAN. Авторы доказательства провели тесты с разными настройками и зафиксировали характерные сигнатуры сбоев, свидетельствующие о нарушениях в работе ядра.

Несмотря на то, что разработанный код пока не используется для получения привилегий, существует потенциальная возможность его доработки с использованием техники атаки на кучу с перекрёстным кэшированием. Разработчики ядра уже выпустили обновления, устраняющие уязвимость. Для предотвращения риска эксплуатации владельцам уязвимых устройств рекомендуется как можно скорее установить исправленные версии ядра.