Случайность стала новым правилом, а привычные барьеры просто исчезли.
Независимый исследователь по имени Александр Попов представил новую методику эксплуатации критической уязвимости в ядре Linux, получившей идентификатор CVE-2024-50264 . Эта ошибка класса use-after-free в подсистеме AF_VSOCK присутствует начиная с версии ядра 4.8 и позволяет локальному пользователю без привилегий инициировать опасное состояние при работе с объектом virtio_vsock_sock во время установления соединения. Сложность и масштаб последствий сделали баг лауреатом премии Pwnie Awards 2025 в категории «Лучшее повышение привилегий».
Ранее считалось, что эксплуатация проблемы крайне затруднена из-за защитных механизмов ядра, таких как случайное распределение SLAB-кэшей и особенности работы SLAB-бакетов, мешающих прямолинейным методам вроде heap spraying. Однако Попов сумел разработать цепочку приёмов, которая снимает эти ограничения. Работа велась в рамках открытой платформы kernel-hack-drill, предназначенной для тестирования эксплойтов ядра.
Ключевым шагом стало использование POSIX-сигнала особого типа, который не завершает процесс. Им прерывается системный вызов connect(), что позволяет надёжно воспроизводить гонку состояний и не терять контроль над атакой. Далее исследователь научился управлять поведением кэшей памяти, подставляя собственные структуры на место освобождённых объектов. Тонкая настройка таймингов даёт возможность подсовывать заранее подготовленные данные именно туда, где ранее располагался уязвимый элемент.
После этого эксплойт переходит к повреждению критичных для ядра структур — msg_msg и pipe_buffer. Через систему очередей сообщений удаётся читать память за пределами допустимого диапазона, извлекая адреса и ссылки на чувствительные элементы, включая данные учётных записей. Следующий шаг — модификация указателей внутри pipe_buffer, что позволяет добиться произвольной записи в области ядра. Этот приём перекликается с техниками Dirty Pipe и Dirty Pagetable, но адаптирован под более жёстко защищённые конфигурации.
Особое внимание уделено тактике «спидрана» гонки состояний: атака многократно инициирует уязвимое соединение, пока объектная пара не окажется в нужном положении для захвата. В результате эксплуатация становится не только более надёжной, но и применимой в современных системах с активными механизмами защиты.
По мнению исследователя, появившаяся методика показывает, что даже защищённые ядра Linux остаются уязвимыми к изобретательным стратегиям обхода. Для команд безопасности CVE-2024-50264 должна рассматриваться как приоритетная угроза, требующая немедленного исправления и пересмотра механизмов защиты объектов памяти. Проект kernel-hack-drill, в свою очередь, стал удобным инструментом для изучения и отработки подобных сценариев, подчёркивая необходимость постоянного усиления внутренней архитектуры ядра.