Захватываем ring 0 в Linux

       

ключевой фрагмент функции


В отсутствии семафора, состояние виртуальной памяти может быть изменено межу вызовов функций kmem_cache_alloc и vma_link, и тогда вновь созданный VMA-дескриптор будет размещен совсем не в том месте, на которое рассчитывали разработчики! Для захвата root'а этого более чем достаточно.

К сожалению, даже простейший эксплоит занимает слишком много места и поэтому не может быть приведен здесь, однако, его исходный код легко найти в Интернете. Оригинальная версия (с подробным описанием техники взлома) лежит на: http://www.isec.pl/vulnerabilities/isec-0021-uselib.txt.



Содержание раздела