
CVE-2026-64531 (OVSwrap) PoC - Linux kernel Open vSwitch LPE; for patch validation and security research
PoC локального повышения привилегий (обычный пользователь → root) в модуле Open vSwitch ядра Linux. Использует заворот (переполнение) 16-битного поля nla_len, чтобы поднять привилегии с обычного пользователя до root.
Когда поток вложенных action-ов, формируемых OVS, превышает 65 535 байт, 16-битное поле nla_len переполняется с заворотом. Имея лишь CAP_NET_ADMIN в приватном пользовательском/сетевом пространстве имён, атакующий может создать сверхдлинный action CLONE, из-за чего парсер ядра попадает в управляемые атакующим данные conntrack, получая примитивы произвольного чтения из ядра и пословного декремента, что в итоге позволяет подменить собственные учётные данные и повысить привилегии до root.
Ошибка вызвана 13-летней давности небезопасным присваиванием (commit 74f84a5726c7), которое ранее было защищено ограничением суммарной длины в 32 КиБ; она активировалась после того, как commit a1e64addf3ff в марте 2025 года снял это ограничение.
openvswitch ядра Linuxunshare -Urn (без прав в исходном пространстве имён)Ветки 6.13–6.17, 6.19 и 7.0 достигли конца поддержки (EOL) и не будут исправлены.
unshare -Urn), установлен sudo# 必须以普通(非 root)用户运行
python3 ovswrap-poc.py
Скрипт автоматически выполняет unshare -Urn, переходя в приватное пользовательское и сетевое пространство имён; в него встроена предварительно вычисленная таблица смещений примерно для 800 сборок ядра x86-64, а при отсутствии совпадения смещения динамически выводятся из System.map / BTF / pahole. В случае успеха скрипт получает root-оболочку без запроса пароля, добавляя запись в /etc/sudoers.d/.
Только для исследований в области безопасности, проверки уязвимостей и защитного тестирования. Этот PoC повреждает учётные данные ядра, изменяет файлы sudoers, оставляет зомби-процессы и нарушенное состояние OVS. Запускайте его строго в одноразовой виртуальной машине; не выполняйте в производственной среде или в среде без авторизации.
3f1f755366687d051174739fb99f7d560202f60b| Ветка ядра | Затронутый диапазон | Первая исправленная версия |
|---|
| 5.15.y | 5.15.180 – 5.15.211 | 5.15.212 |
| 6.1.y | 6.1.132 – 6.1.177 | 6.1.178 |
| 6.6.y | 6.6.84 – 6.6.144 | 6.6.145 |
| 6.12.y | 6.12.20 – 6.12.96 | 6.12.97 |
| 6.18.y | 6.18.0 – 6.18.39 | 6.18.40 |
| 7.1.y | 7.1.0 – 7.1.4 | 7.1.5 |