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

Изследователи от компания Xint откриха уязвимост в ядрото на Linux (CVE-2026-31431), която позволява на непривилегирован потребител да получи 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) и шифротекста, а offset-ът за операцията по запис в аутентификационния таг се изчислява относно копираните данни без подходящи проверки, което позволява перезаписването на произволни области в страничния кеш.

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

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

Exploit-ът е универсален, не изисква адаптация за дистрибуции или версии на ядрото, и може да се използва с всякакви дистрибуции. Тъй като за контейнерна изолация за всички контейнери се използва общ страницов кеш, уязвимостта може да се използва за получаване на достъп до хост средата от контейнера (по-късно ще бъде публикуван exploit за заобикаляне на изолацията в 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