Уязвимост, свързана с повреда на паметта в компонента за обработка на данни (datapath) на Open vSwitch (OVS) в Linux ядрото, дава възможност на обикновени локални потребители да придобият root права върху широк набор от дистрибуции с конфигурация по подразбиране. Публично достъпният код за експлоатация се разпространява с предварително подготвени записи за около 800 компилации на ядрото.

Уязвимостта се проследява под идентификатора CVE-2026-64531 (оценка по CVSS: 7.8) и е наречена OVSwrap от нейния откривател – изследователя по сигурността Асим Манизада, който я разкрива на 28 юли 2026 г.

Проблемът се намира в datapath компонента на ядрото, а не в демона за потребителско пространство ovs-vswitchd. В техническия си анализ Манизада посочва, че на атакуващия не са необходими „съществуващ OVS bridge, работещ ovs-vswitchd, нито права от ниво хост CAP_NET_ADMIN“.

При засегнатите системи, където OVS компонентът в ядрото е достъпен и са разрешени непривилегированите потребителски пространства от имена (user namespaces), обикновен потребител може да създаде частни потребителски и мрежови пространства от имена чрез командата unshare -Urn, да придобие права CAP_NET_ADMIN в рамките на това пространство и да достигне до уязвимия път за инсталиране на потоци.

Ако модулът openvswitch е инсталиран, но не е зареден, извикването на неговото Generic Netlink име може автоматично да го зареди. Празният резултат от командата lsmod не означава, че системата е защитена.

Официалното отстраняване на уязвимостта в основното дърво (upstream) беше пуснато в стабилните клонове на 24 юли. В случаите, когато все още не е налична коригираща версия на ядрото от съответния доставчик на дистрибуцията и не се изисква използването на Open vSwitch, се препоръчва блокиране на бъдещото зареждане на модула; ако модулът вече е зареден в паметта, той трябва да бъде премахнат или системата да бъде рестартирана.

Манизада съобщава, че е докладвал за проблема на security@kernel.org и на поддръжниците на OVS на 19 юни. Първите коригирани версии на ядрото са Linux 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40 и 7.1.5. Версиите от 6.13 до 6.17, както и 6.19 и 7.0, които са в край на жизнения си цикъл (EOL), няма да получат стабилни корекции за сигурност.

Тези номера на версиите от основното ядро сами по себе си не са достатъчни като ориентир. Дистрибуциите често включват пренесени назад корекции (backports) и промени по веригата, така че проследяващите системи на конкретния доставчик са по-надежден източник на информация.

Open vSwitch съхранява генерираните действия за потоци (flow actions) като атрибути на Netlink, чието поле nla_len е с размер 16 бита, което ограничава всеки единичен вложен атрибут до 65 535 байта. Това незащитено присвояване съществува от 13 години, но ограничението от 32 KiB за общия поток от генерирани действия поддържаше вложените действия под точката на препълване.

Промяна от март 2025 г. премахна това ограничение, тъй като то водеше до непредвидими грешки, включително при среди с OpenStack, и по този начин изложи на риск по-старата грешка с пресичане. В дискусията по прегледа на съответния комит са обсъждани надеждността и грешките за крайните потребители, но не са разгледани последиците за сигурността от премахването на защитната бариера.

Атакуващият изпраща действие CLONE, съдържащо стотици поддействия за проследяване на връзките (conntrack sub-actions). На архитектура x86-64 ядрото разширява всяко от тях до 164 байта, което изтласква генерираното вложено действие над 65 535 байта. Когато OVS запише резултата в 16-битовото поле за дължина, стойността се препълва и се превърта.

По-нататъшната част от кода се доверява на тази дължина и възобновява анализа от вътрешността на контролираните от атакуващия conntrack данни, където чакат фалшифицирани OVS действия. Тъй като точката на попадане е детерминирана в същия непрекъснат буфер, не е необходимо манипулиране на хийпа.

Манизада описва резултата като уязвимост, свързана с повреда на паметта, която се отличава с „надеждност, присъща на логическа грешка“.

Кодът за експлоатация свързва три примитива, произтичащи от препълването: изтичане на указател към ядрото чрез фалшиво действие OUTPUT, произволно четене от ядрото чрез фалфицирано тунелно действие SET и целево декрементиране чрез прекратяване на фалшив указател tun_dst. Чрез тези примитиви се откриват идентификационните данни на хост процеса и при съвременните ядра стойностите на fsuid и fsgid се декрементират до нула.

Публикуваната демонстрация на концепцията (PoC) е изрично деструктивна. Тя изисква също така поддръжка на OVS conntrack, FTP conntrack helper и инсталиран sudo.

При успешен опит тя компрометира текущите идентификационни данни в ядрото, модифицира /etc/sudoers.d или /etc/sudoers, стартира root конзола и оставя работещите процеси и състоянието на OVS непокътнати, за да се избегне опасно принудително прекратяване. Хранилището с демонстрационния код включва записи за около 800 конкретни компилации на ядра за x86-64 и прави опити за динамично извличане на символи или BTF за непокрити версии.

Матрицата за тестване на Манизада показва успешно експлоатиране при конфигурации по подразбиране на системи като AlmaLinux 9 и 10, Alpine от 3.22 до 3.24, Amazon Linux 2023, Arch, CentOS Stream 9 и 10, Debian 12 и 13, Fedora от 42 до 44, Gentoo, Kali 2026.1, Linux Mint 22.3, NixOS, openSUSE Tumbleweed, Pop!_OS, Rocky Linux 9 и 10, както и Ubuntu 22.04.

При тестваните системи с Ubuntu 24.04 AppArmor е блокирал директното създаване на пространства от имена, но алтернативният път на демонстрационния код с aa-exec -p trinity е възстановил достъпа. Стандартната инсталация на Ubuntu 26.04 блокира достъпа за обикновени потребители; при деактивиране на ограниченията на AppArmor за потребителски пространства от имена тестваните системи са се оказали уязвими.

Тестваните среди с Amazon Linux 2, Debian 11, Rocky Linux 8 и Ubuntu 20.04 използват по-стари пътища на изпълнение на кода и не са уязвими по този начин.

Препоръчва се инсталиране на коригирано ядро от съответния доставчик веднага след като е налично. В случаите, в които Open vSwitch не е необходим, най-бързата временна стъпка е блокиране на модула:

echo 'install openvswitch /bin/false' > /etc/modprobe.d/ovswrap.conf

Това пренасочване спира бъдещи опити за зареждане на модула; ако модулът вече се намира в паметта, той трябва да бъде премахнат ръчно или системата да бъде рестартирана.

Деактивирането на непривилегированите потребителски пространства от имена затваря пътя за изпълнение на атаката от страна на обикновени потребители.