Критична уязвимост в ядрото на Linux може да позволи на виртуална машина (VM), контролирана от атакуващ, да преодолее границата си на изолация и да засегне хост системата. Тази уязвимост, идентифицирана като CVE-2026-99999 и наречена PwnEscape от изследователя Paulos Yibelo, произлиза от мрежовия код на Linux, а не от конкретен хипервайзър.

Paulos Yibelo демонстрира техника, която разкрива паметта на хоста и в лабораторни условия е довела до изпълнение на код на ниво хост. Дефектът е сериозен за облачните доставчици и организациите, които изпълняват ненадеждни работни натоварвания във виртуални машини. Изолацията на виртуалните машини е предназначена да спре кода в дадена гост-система да достигне до хоста и до други натоварвания.

PwnEscape показва как слабост в механизма за обработка на пакети на хоста може да застраши тази граница, дори когато първопричината не е в самия хипервайзър.

Уязвимост в ядрото PwnEscape

Linux може да отлага изчисляването на контролната сума на мрежов пакет. Това е стандартна функция за повишаване на производителността: метаданните на пакета указват на ядрото къде трябва да започне операцията по контролната сума и къде трябва да бъде записан резултатът.

Според доклада на Paulos Yibelo за PwnEscape проблемът възниква, когато по-малко надеждни метаданни на пакета могат да повлияят на последващ запис в IPv4 заглавната част (header). Linux вече е обработил пакета, използвайки първоначалното съдържание на заглавната част. Но преди фрагментацията отложената операция за контролна сума може да промени това съдържание. След това последващият код разчита на актуализираната дължина на IPv4 заглавната част.

В тестовия случай на Paulos Yibelo пакетът първоначално изглежда със стандартна 20-байтова IPv4 заглавна част. След отложения запис заглавната част може да бъде интерпретирана с дължина от 60 байта. След това кодът за фрагментация може да третира байтовете отвъд валидните линейни данни на пакета като част от заглавната част и да ги включи в изходящ пакет. Той съобщава, че това разкрива 32 байта от паметта на хоста.

Това разкриване не е равносилно на изпълнение на код. Докладът описва отделна, контролирана лабораторна верига, при която изследователите са използвали наблюдение на паметта на хоста и внимателно управлявано разпределение на паметта, за да демонстрират целеви записи в паметта на ядрото и да стартират помощен процес с root права на хоста. Те споделят, че този резултат е възпроизведен на собствени системи на изследователите, а не като доказателство за изпълнение с root права в производствена среда на облачен доставчик.

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

Клон на ядрото на LinuxЗасегнати версии в клонаПърва коригирана версия
5.10от 5.10 до 5.10.2715.10.272
5.15от 5.15 до 5.15.2225.15.223
6.1от 6.1 до 6.1.1896.1.190
6.6от 6.6 до 6.6.1586.6.159
6.12от 6.12 до 6.12.1126.12.113
6.18от 6.18 до 6.18.566.18.57
7.2от 7.2 до 7.2.107.2.11
7.3 development seriesКандидат-версии преди 7.3-rc77.3-rc7

Официалната корекция за сигурност в Linux добавя проверка преди определени операции за завършване на контролната сума. Тя проверява дали началото на контролната сума не се намира вътре в IPv4 заглавната част. Ако метаданните не преминат проверката успешно, ядрото не продължава със записа на контролната сума по засегнатия път. Промяната обхваща няколко потребителя, включително IPv4 фрагментацията.

Комитът описва промяната като мярка за многослойна защита (defense-in-depth). В него също се отбелязва, че е необходима още работа по по-строгата валидация при входящия трафик на пакети. С други думи, корекцията за сигурност добавя защита на местата, където ядрото завършва изчислението на контролните суми, но не се представя като цялостно препроектиране на начина, по който всички метаданни за контролни суми постъпват в мрежовия стек.

Администраторите трябва да прегледат бюлетините за сигурност на своите дистрибутори на Linux и да инсталират обновено ядро, което съдържа корекцията. Официалният комит може да помогне за идентифициране на промяната, но Linux дистрибуциите могат да пренесат (backport) корекциите за сигурност към по-стари версии на ядрото. Само номерът на версията може да не показва дали системата е защитена, затова проверете препоръките на доставчика и се уверете, че системата работи с обновеното ядро.

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

Откритието идва от състезанието по сигурност на Vercel за изолирана среда на стойност 1 милион долара, което покани изследователи да тестват механизмите за изолация. Paulos Yibelo от pwn.ai докладва уязвимостта в ядрото на Linux на третия ден, работейки от стандартна изолирана среда без специален достъп. От Vercel я определиха като най-важната констатация в програмата.

Предизвикателството получи 1285 доклада в рамките на две седмици и изплати общо 242 000 долара под формата на възнаграждения, като дефектът в ядрото беше единствената констатация с критична оценка.

Cybersecurity News също така отрази потвърждението от Vercel за доклад относно бягство от KVM (KVM escape) и отделна уязвимост в Linux vhost с публично доказателство за концепция. Това са отделни проблеми с различни причини. Те не трябва да се разглеждат като взаимозаменяеми или да се приема, че се отстраняват с една и съща корекция за сигурност.

За специалистите по защита незабавната стъпка е да следят актуализациите от доставчиците и да инсталират корекции за сигурност на Linux хостовете, на които работят виртуални машини. В основата на проблема е несъответствие между метаданните на пакета и IPv4 заглавната част, на която последващият код се доверява. Това прави корекцията важна не само за доставчиците на виртуализация, но и за екипите, които разчитат на мрежовата обработка на Linux за изолиране на ненадеждни натоварвания.