В свежем релизе-кандидате ядра Linux 7.2-rc7 разработчики заштопали уязвимость класса Use-After-Free (UAF), которая незаметно жила в подсистеме управления памятью последние восемь лет. Баг закрался в код еще в марте 2018 года вместе с выпуском Linux 4.16.
Проблема гнездилась в отладочном механизме PTDUMP, который отвечает за дамп таблиц страниц ядра в читаемый вид для поиска дыр в безопасности и аудита прав доступа.
Как выяснилось, между
ptdump и механизмом vmap возникало состояние гонки при попытке замапить гигантские записи P4D, PMD или PUD. Если обходчик ptdump пытался прочитать таблицу страниц прямо в момент ее освобождения, происходило опасное обращение к уже очищенной памяти. Наличие UAF еще в июне нащупал фаззер Syzbot, а финальный патч подготовил Лоренцо Стоукс, дорабовав решение Дэвида Карлье, в поисках причин которого помогала нейросеть Claude Opus 4.8.Исправление уже влили перед выходом Linux 7.2-rc7, и в ближайшие дни его бэкпортируют во все поддерживаемые стабильные ветки ядра.
Linux / Линукс 🥸
