От KernelSnitch к практической реализации утечек KASLR из кучи с использованием структур msg_msg и pipe_buffer В этой публикации представлен практичес…
В этой публикации представлен практический метод утечки KASLR из кучи (heap), который не полагается на уязвимости безопасности памяти. Я начинаю с KernelSnitch - чисто программного побочного канала по времени (timing side channel), который восстанавливает местоположение структуры mm_struct текущего процесса и, на его основе, базовый адрес соответствующей slab-страницы кэша mm_cachep.
Затем я комбинирую эту утечку с методом переиспользования памяти между кэшами в пределах одного порядка страниц (same-page-order cross-cache reuse), чтобы перейти к объектам, актуальным для эксплуатации, таким как msg_msg и pipe_buffer. В результате получается универсальный примитив утечки, который работает в нативных системах Linux, виртуализированных средах KernelCTF, ограниченных окружениях Android, а также на архитектурах x86_64 и aarch64.
Поскольку атака восстанавливает валидные указатели ядра, не вызывая некорректных обращений к памяти, она остается работоспособной даже в системах с поддержкой MTE (Memory Tagging Extension). Более того, когда утекший указатель на mm_struct тегирован (например, на устройствах Google Pixel), KernelSnitch может восстановить и его логический тег, что подчеркивает потенциал метода в качестве «оракула тегов» для скомпрометированного объекта.
https://lukasmaar.github.io/posts/heap-kaslr-leak/index.html
👉 @thehaking