Локальный пользователю может получить права root, перезаписав данные в страничном кэше. Уязвимость вызвана ошибкой в реализации механизма zerocopy в функции rds_message_zcopy_from_user(), осуществляющей прямое изменение данных в страничном кэше для исключения лишней буферизации. В случае сбоя не производилась очистка поля rm->data.op_nents, из-за чего выполнялось двойное освобождение буфера (double-free). Появление некорректного значения в счётчике ссылок удалось эксплуатировать для перезаписи данных в страничном кэше, благодаря манипуляции с указателем на фиксированный буфер io_uring.
Механизм эксплуатации типичен для всех уязвимостей данного класса - атакующий добивается оседания файла программы с флагом suid root в страничном кэше, после чего подставляет в ELF-заголовок код для запуска /usr/bin/sh. После данной манипуляции запуск программы приводит к загрузке в память не оригинального исполняемого файла с накопителя, а изменённой копии из страничного кэша. В отличие от прошлых эксплоитов, новый вариант адаптирован не только для атаки на утилиту «su», но и может применяться при наличии в системе таких suid-программ, как mount, passwd, chsh, newgrp, umount и pkexec.
Итого 6 дыр дающих рута меньше чем за неделю. И где там @hibou с его мантрой «винда решето, ля, ля, ля …»?







