Copy Fail — уязвимост в ядрото на Linux, която позволява получаване на root достъп в повечето дистрибуции.

Изследователи от компанията Xint откриха уязвимост (CVE-2026-31431) в ядрото на Linux, която позволява на непривилегирован потребител да получи root достъп до системата. Проблемата е получила кодово име Copy Fail. Достъпен е прототип на експлоита. Възможността за експлозия на уязвимостта е демонстрирана в Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 и SUSE 16, но се отбелязва, че пакетите с ядро от други дистрибуции, включително Debian, Arch, Fedora, Rocky и Alma, също са засегнати, но не са тествани отделно.

Уязвимостта е причинена от логическа грешка в crypto API (AF_ALG) на ядрото на Linux, допусната при оптимизация, извършена през 2017 г., която премахва ненужното буфериране чрез изпълнение на място (in-place) на операции с блоково шифриране AEAD (Authenticated Encryption with Associated Data). Проблемът възникна поради необмисленото използване на функцията splice(), предаваща данни между файлови дескриптори и канали (pipe) без копиране, чрез предаване на линкове към елементи в страницовия кеш. След извършената оптимизация, при предаване на файл в сокет AF_ALG за декриптиране, в структурата scatterlist се записваше не линк към отделен буфер, а директен линк към елементите в страницовия кеш на ядрото с данните от файла.

По-късно, по време на декриптирането на AEAD, свързаните по линк данни на аутентификационния таг („authentication tag“) се смесваха с копираните в RX буфера допълнителни аутентифицируеми данни (AAD, Associated Authenticated Data) и шифротекст, като офсетът за операцията на записа в аутентификационния таг се изчисляваше относно копираните данни без необходимите проверки, което позволяваше презапис на произволни области в страницовия кеш.

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

За изпълнение на код с права на root е достатъчно да се постигне промяна в страничния кеш за всеки изпълним файл с флаг suid root.
В предложеното експлоитиране се извършва четене на изпълнителен файл \/usr\/bin\/su и модификация на зареденото в страничния кеш съдържание на този файл за инжектиране на свой код. При последващо стартиране на утилитата „su“ в паметта ще бъде зареден не оригиналният изпълним файл от носителя, а променената версия от страничния кеш.

Експлоитът е универсален, не изисква адаптация към дистрибутиви или версии на ядрото и може да се използва с всякакви дистрибутиви. Тъй като при използване на контейнерна изолация за всички контейнери се използва общ страничен кеш, уязвимостта може да се използва за получаване на достъп до хост среда от контейнера (по-късно се обещава да бъде публикуван експлоит за заобикаляне на изолацията в Kubernetes).

Уязвимостта беше открита с помощта на AI след около час експерименти с анализ на кода на криптосистемата на ядрото. Проблемът се проявява започвайки от ядрото на Linux 4.14, пуснато през 2017 година, и е отстранен в ядрата 6.18.22, 6.19.12 и 7.0. Статусът на отстраняване на уязвимостите в дистрибутивите може да бъде оценен на следните страници: Debian, Ubuntu, SUSE\/openSUSE, RHEL, Gentoo, Arch,
Fedora, ROSA.

Като алтернативно решение за защита може да се деактивира модулът на ядрото algif_aead, който се използва в OpenSSL при явно включване на двигателя afalg и в отделни приложения (можете да проверите наличието на такива приложения с командата „lsof | grep AF_ALG“):

    echo «install algif_aead \/bin\/false» > \/etc\/modprobe.d\/disable-algif.conf
    rmmod algif_aead

    Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster