Представьте: один скрипт, никаких race condition, никаких per-distro offsets — и через пару секунд ваш www-data превращается в root. Именно так работает CVE-2026-31431, она же Copy Fail — уязвимость, которая пряталась в ядре Linux девять лет. 🔎Суть бага — в пересечении трёх подсистем ядра, которые по отдельности работают корректно: • AF_ALG — сокетный интерфейс к крипто-API ядра, доступный любому непривилегированному процессу • splice() — системный вызов, который передаёт данные через ссылки на страницы page cache без копирования • Page cache — общесистемный кеш, где одна и та же страница памяти обслуживает все процессы, включая setuid-бинари В 2017 году модуль algif_aead получил оптимизацию: destination и reference pages объединили в единый scatterlist. Но код не проверял, можно ли записывать за пределы output-региона. Шаблон authencesn при расшифровке пишет 4 байта scratch-данных по фиксированному смещению. Через splice() атакующий подставляет страницы page cache от setuid-бинаря
732 байта Python-кода — и детерминистический root на любом Linux
3 дня назад3 дня назад
208
2 мин