Разкрити са две нови уязвимости в ядрото на Linux, които позволяват на непривилегирован потребител да получи права root, презаписвайки данни в страницовия кеш. Подготвени са работещи експлойти за двете уязвимости.
- PEdit-CoW (CVE-2026-46331, експлоит 1, експлоит 2) — грешка при прилагането на механизма copy-on-write в кода за изменение на заглавията на пакетите (act_pedit), използван в планировчика на мрежовите пакети (net/sched), позволява запис на данни извън зададения буфер, което може да се използва за презаписване на данни в страницовия кеш на избрано разстояние. Грешката се дължи на факта, че проверката на допустимата област за запис на данни е извършена без да се вземе предвид, че разстоянието до редактируемите полета може да се промени по време на изпълнението на операцията.
Проблемът се проявява от ядрото на Linux 5.18 и е отстранен в версиите 7.1, 7.0.13, 6.18.36 и 6.12.94. Обявена е възможността за експлоатация на проблема в RHEL 8/9/10, Debian 11/12, openSUSE Leap 15.6, SUSE Linux 15-SP7/16.0 и Ubuntu 18.04-25.10 (в версия Ubuntu 26.4 по подразбиране е блокиран създаването на user namespace). Като обходен път за защита се препоръчва да се блокира зареждането на модула на ядрото act_pedit (правилата за ограничаване на трафика и презаписването на заглавията чрез “tc pedit” ще спрат да работят).
echo «blacklist act_pedit» > /etc/modprobe.d/blacklist-act-pedit.conf
rmmod act_pedit - DirtyClone (CVE-2026-43503, експлоит) — обходен път за експлоатация на уязвимостта Dirty Frag в модула xfrm-ESP, използван за ускоряване на операциите по шифроване в IPsec с използването на протокола ESP (Encapsulating Security Payload). За клониране на структурата skb в новия експлоит се използва манипулация с TEE разширението към netfilter (модул xt_TEE), извършваща операцията на клониране на мрежови пакети.
Уязвимостта е отстранена в версиите на ядрото Linux 7.1, 7.0.10, 5.10.257, 5.15.208, 6.1.174, 6.6.141, 6.12.91 и 6.18.33. Проблемът се проявява в Debian, Ubuntu, Fedora,
RHEL и SUSE. Като обходен път за блокиране на уязвимостта, може да се забрани зареждането на модулите на ядрото esp4 и esp6.
За експлоатацията на и двете уязвимости са необходими права достъп CAP_NET_ADMIN, които непривилегирован потребител може да получи чрез създаване на пространства от имена на идентификатори на потребители (user namespace). В Ubuntu подобна операция по подразбиране е забранена, но може да бъде разрешена чрез sysctl «kernel.apparmor_restrict_unprivileged_userns=0» или профили AppArmor. В останалите дистрибуции наличността на «user namespace» за неprivilegировани потребители зависи от настройката на sysctl «kernel.unprivileged_userns_clone» (ако е 0, е забранено).
Експлоатацията на уязвимостите се състои в четене на файла на програмата /bin/su с флаг suid root, за да бъде запазен в страницовия кеш, и замяна в страницовия кеш на част от кода на програмата с код за изпълнение на /bin/sh. Последващото изпълнение на програмата ще доведе до това, че в паметта ще бъде зареден не оригиналният изпълняем файл от носителя, а променената копия от страницовия кеш.
Допълнително може да се отбележи създаването на експлоит за уязвимостта CVE-2026-23111 в подсистемата nf_tables, отстранена в февруарските обновления на ядрото на Linux. Уязвимостта е причинена от достъп до паметта след нейното освобождаване (use-after-free) и позволява на не привилегирован потребител да получи права root в системата. За атака потребителят също трябва да има възможност за създаване на пространства от имена на идентификатори на потребители (user namespace). Работата на експлоита беше демонстрирана в
Debian 12/13 и Ubuntu 22.04/24.04.
Източник: opennet.ru
