TGViewer
opennet.ru полные новости opennet.ru полные новости @opennet_full · 238 subscribers
Post #6964 51
PwnEscape - уязвимость в сетевом стеке ядре Linux, позволяющая обойти изоляцию гипервизоров и контейнеров

В ядре Linux выявлена критическая уязвимость (CVE-2026-99999, PwnEscape) в стеке IPv4, позволяющая получить доступ к памяти хост-окружения из гостевой системы. При эксплуатации уязвимости пользователь гостевой системы может выполнить код с правами ядра на стороне хост-окружения. Эксплуатация уязвимости продемонстрирована в окружении на базе гипервизора KVM, но так как уязвимость вызвана ошибкой не в гипервизоре, а в механизме обработки сетевых пакетов ядром Linux, потенциально эксплоит может быть адаптирован и для других гипервизоров и механизмов изоляции, в которых используется штатный сетевой стек Linux.



Проблема вызвана некорректной последовательностью операций при проверке контрольной суммы сетевого пакета, позволяющей изменить заголовок IPv4 в момент после проверки корректности информации, но до выполнения действий с ним (TOCTOU - Time-Of-Check-To-Time-Of-Use). При определённых условиях вычисление контрольной суммы выполняется в отложенном режиме, уже после разбора и проверки сетевого пакета, что может привести к изменению уже проверенных данных и чтению до 32 байт из области памяти вне буфера, в котором происходит обработка пакета.


Атака производится через отправку из гостевой системы пакета с флагом CHECKSUM_PARTIAL, при котором контрольная сумма вычисляется не сразу, и специально подобранными значениями skb->csum_start и skb->csum_offset. Пакет проходит проверку в сетевом стеке, так как длина заголовка корректна и равна 20 байт. Завершения вычисления контрольной суммы осуществляется при обработке фрагментации пакета, но из-за некорректных значений csum_start и csum_offset результат записывается в самое начало IPv4-заголовка и изменяет первый байт, хранящий размер, увеличивая его 20 до 60 байт. При дальнейшей обработке ядро считает, что размер заголовка теперь 60 байт, при копировании читает дополнительные 40 байт (c учётом хвостовых служебных 8 байт, читается 32 байта из области вне буфера) и отправляет обратно в составе секции с IP-опциями.


В подготовленном эксплоите утечку 32 байт удалось использовать для контролируемой перезаписи 64 байт в памяти ядра и добиться выполнения кода на стороне хост-окружения с правами root. Технические детали данной стадии атаки и код эксплоита пока не публикуются, чтобы дать пользователям время на установку обновления. Предполагается, что утечка вначале используется для воссоздания раскладки памяти ядра в обход рандомизации KASLR, после чего создаются условия для выделения целевой структуры ядра с указателем сразу за памятью с буфером пакета и переписывают указатель, инициировав действие, приводящее к изменению данных в секции с IP-опциями, выходящими за границу буфера.



Уязвимость устранена в вчерашних обновлениях ядра Linux 7.2.11, 6.18.57, 6.12.113, 6.6.159, 6.1.190, 5.15.223 и 5.10.272.




https://opennet.ru/66487/
https://opennet.me/66487/
More from @opennet_full
  1. Oct 17, 2026AI-модель Claude воссоздала формирование seed-параметров стандартных эллиптических кривых…
  2. Oct 17, 2026Новые версии Wine 11.20 и Wine-staging 11.20 Опубликован экспериментальный выпуск открытой…
  3. Oct 17, 2026ESP-KVM 0.65.0 и прошивка, превращающая планшет M5Stack Tab5 в экран для IP-KVM Выпущена н…
  4. Oct 17, 2026Выпуск OpenRGB 1.1, инструментария для управления RGB-подсветкой После месяца разработки о…
  5. Oct 16, 2026Разработчик Firefox провёл сравнительное тестирование форматов JPEG XL и AVIF Джейк Арчиба…
  6. Oct 16, 2026Опубликована мобильная платформа Ubuntu Touch 24.04-2.1 Представлена прошивка Ubuntu Touch…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →