Сигурността на Linux е изправена пред ново предизвикателство след откриването на... уязвимост CVE-2026-31431, наречена „Неуспешно копиране“ от изследователите в Xint Code. Далеч от това да е теоретичен недостатък, този проблем с дизайна Това позволява на локален потребител без привилегии да повиши разрешенията си и да получи пълен достъп. като суперпотребител по предвидим и безшумен начин.
Изследователите споменават, че тази уязвимост е била успешно използвана във водещи дистрибуции като Ubuntu, Amazon Linux, RHEL и SUSE, което потвърждава, че всяка система, работеща с ядро, по-късно от версия 4.14 и продължавай Активирането на поддръжката за AF_ALG сокети е потенциално уязвимо към тази атака.
Операции на място и препълване на кеша на страници
Относно решението се споменава, че това Това датира от оптимизация, въведена през 2017 г. в криптографския API на ядрото (AF_ALG). Тази модификация Търсех начин да елиминирам ненужното буфериране. изпълнение на операции за удостоверено криптиране (AEAD) директно в едно и също пространство от паметта, което е известно като операции „на място“.
El Критичен проблем възниква при комбинирането на тази оптимизация с функцията splice(), Този метод прехвърля данни между файлови дескриптори, като прехвърля директни препратки към кеша на страниците на ядрото, вместо физически да копира данните. При заявка за декриптиране, структурата на паметта е конфигурирана така, че целевият буфер, който би трябвало да е временно пространство за потребителя, в крайна сметка е директно свързан със страниците на кеша, съдържащи данните от системните файлове.
Удостоверяване и запис извън границите на паметта
El Крайният спусък на уязвимостта се крие в аномалното поведение на алгоритъма за удостоверяване. За разлика от други криптографски процедури, които стриктно спазват границите на своите буфери за местоназначение, Този специфичен алгоритъм използва паметта на потребителя като временна работна област. (бележник) за пренареждане на байтови последователности по време на изчисляване на таг за удостоверяване.
В този процес алгоритъмът записва четири байта извън установения лимит за изходната област. Поради оптимизацията на място и референтната верига, създадена от splice(),Това на пръв поглед безобидно писане преминава границата на паметта на потребителя и се прехвърля директно на страницата на кеша на ядрото, свързана с обработвания файл.
Тази верига от логически грешки Това дава възможност на нападателя произволно да презапише четири байта в специфични позиции в кеша. от страници за всеки файл, който може да прочете. Чрез изпращане на поредица от изчислени заявки, нападателят може да инжектира зловреден код във версията в паметта на критични изпълними файлове с зададен SUID бит, като например инструмента за превключване на потребители.
Тъй като всички операции за четене първо отправят запитване към кеша на страниците, следващия път, когато легитимната помощна програма бъде извикана, Системата ще изпълни инжектирания код от паметта, предоставяйки незабавни root права. без изобщо да променя физическия файл на твърдия диск. Още по-тревожно е, че тъй като изолирането на контейнера споделя кеша на страниците на основния хост, тази уязвимост служи като директен вход за избягване на виртуализирани среди като клъстери на Kubernetes и компрометиране на основния възел.
Аварийни корекции и решения за смекчаване на последиците
Предвид сериозността на това решение, Екипите по поддръжка са внедрили аварийни актуализации, къде се крие окончателното решение Върнете оптимизацията на място във файла algif_aead.c, като стриктно разделите списъците с памет източник и приемник за да се предотврати попадането на кеширани страници в пътища, в които може да се записва.
Тези пачове вече са интегрирани в ядра 6.18.22, 6.19.12 и 7.0 и се връщат обратно към клоновете за дългосрочна поддръжка. За администратори, които не могат незабавно да рестартират или актуализират сървърите си, се препоръчва да деактивират модула на ядрото algif_aead, ако е компилиран външно, или силно да ограничат създаването на AF_ALG сокети, използвайки политики за сигурност като SELinux, щит, който например е предпазил настоящите Android устройства от тази заплаха.
И накрая, ако се интересувате да научите повече, можете да намерите подробностите на следния линк.