В сетевом стеке ядра Linux была обнаружена уязвимость, позволяющая выйти из виртуальной машины (VM) на хост-систему. Злоумышленник, действующий внутри виртуальной машины, мог пересечь границу изоляции и получить доступ к базовой хост-системе.
Уязвимость, получившая название PwnEscape и отслеживаемая как CVE-2026-99999, позволяла метаданным пакета, контролируемым гостевой системой, инициировать запись, изменяющую заголовок IPv4 после его обработки ядром. Эта уязвимость могла быть объединена с дополнительными техниками эксплуатации для достижения выполнения кода на уровне хоста.
Проблема была обнаружена исследователем безопасности Паулосом Йибело из Pwn.ai во время участия в конкурсе безопасности Sandbox от Vercel с призовым фондом в 1 миллион долларов, объявленном 18 августа. Конкурс предлагал исследователям протестировать границы изоляции инфраструктуры песочницы Vercel, в том числе возможность выхода из самой виртуальной машины и достижения хоста.
Vercel впоследствии назвала PwnEscape самым серьезным из найденных в рамках программы. «Сбой, связанный с пакетами, и атаки с выполнением кода были продемонстрированы на собственных машинах KVM и Firecracker исследователя, соответствующих конфигурации Vercel Sandbox», — заявил главный инженер по безопасности Vercel Энди Рианчо в блоге. Он добавил, что не поступало сообщений о доступе к данным клиентов в Vercel Sandbox.
Проблема уже устранена. В описании уязвимости на сайте NVD указано семь исправлений для стабильных веток, включая версии Linux 5.10, 5.15, 6.1, 6.6, 6.12, 6.18 и 7.2, а также одно исправление в основной ветке mainline.
Задержка контрольной суммы изменила доверенный заголовок ядра
PwnEscape использует механизм разгрузки контрольной суммы в Linux, который позволяет ядру отложить расчет контрольной суммы сетевого пакета до более поздней стадии обработки. Метаданные пакета указывают, где должен начаться расчет и куда должен быть записан его результат.
Проблема возникает, когда метаданные контрольной суммы, контролируемые злоумышленником, направляют эту запись в заголовок IPv4 пакета. Linux сначала обрабатывает пакет с использованием исходного заголовка, но последующая операция завершения расчета контрольной суммы может изменить заголовок до того, как фрагментированный код снова его использует.
Йибело продемонстрировал это, успешно изменив интерпретируемую длину заголовка IPv4 с 20 байт на 60 байт. Затем фрагментированный код обработал байты за пределами допустимых данных пакета как часть заголовка, что позволило включить 32 байта смежной памяти хоста в исходящий пакет.
По сути, это проблема типа «время проверки/время использования» (TOCTOU): ядро принимает решения, связанные с безопасностью, используя одну версию заголовка, а затем действует на измененную версию без повторной проверки. Однако эта последовательность не требует обычной гонки между потоками; отложенная запись происходит во время обычных сетевых операций, как заявил Йибело в своем блоге.
Исправление в Linux защищает запись контрольной суммы
Принятое исправление в основной ветке, коммит 6785011f8b16, вводит проверочные механизмы перед соответствующими операциями завершения расчета контрольной суммы. Эти проверки предотвращают повреждение заголовка IPv4 записью контрольной суммы по затронутым путям обработки.
Патч был применен к дереву разработки Linux 8 октября и включен в основное ядро 14 октября, согласно сообщению в блоге. Йибело описал это изменение как меру защиты в глубину, отметив, что более широкая проверка недоверенных метаданных контрольной суммы остается областью для дальнейшей работы.
Йибело сообщил, что объединил утечку памяти с дополнительными шагами эксплуатации для достижения выбранных записей в памяти ядра и выполнения вспомогательной программы с правами root на своих тестовых системах. «Мы использовали полученную возможность в ограниченной лабораторной цепочке для выполнения вспомогательной программы с правами root и возврата маркера, сгенерированного хостом, в гостевую систему. Четыре отдельных полных перезагрузки завершили эту цепочку», — сказал он.
Хотя ожидаются дополнительные подробности о том, как Йибело удалось осуществить выход из виртуальной машины на хост, он подчеркнул, что проблема не специфична для KVM или другого гипервизора, а заключается в сетевом стеке Linux, обрабатывающем трафик гостевых систем.
«Хотя мы подозреваем, что индустрия безопасности использует эту публикацию для выявления других затронутых гипервизоров, и ожидаем появления эксплойтов для более слабых конфигураций в течение нескольких недель, а эксплойтов, работающих в стандартных конфигурациях гипервизоров, — менее чем за месяц», — предупредил Йибело.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Shweta Sharma




