В ядрото на Linux е установена четвъртата уязвимост за последните две седмици (CVE-2026-46300), която позволява на непривилегирован потребител да получи root права, презаписвайки данни в кеша на страниците. Уязвимостта е получила кодовото име Fragnesia или Copy Fail 3.0. Същността на уязвимостта е сходна с преди разкритите уязвимости Copy Fail и Dirty Frag. Както и при Dirty Frag, новата уязвимост присъства в подсистемата xfrm-ESP, но е предизвикана от различна грешка и изисква отделно коригиране. Работещ експлоит е наличен.
Уязвимостта се проявява в ядрото на Linux, издадено след 5 май, заради случайно активиране от корекцията на уязвимостта Dirty Frag. За отстраняване на уязвимостта Fragnesia е било предложено коригиране за ядрото на Linux. Анализът на това коригиране показа, че то не е достатъчно, и след това беше подготвен втори вариант на патча.
Уязвимостта присъства в подсистемата xfrm в реализацията на механизма за инкапсулация на протокола ESP (Encapsulating Security Payload) в TCP (ESP-in-TCP, RFC 8229), използван за тунелиране на трафик IPsec върху TCP. За да се изключи излишната буферизация, операциите с алгоритъма AES-GCM се изпълняват на място чрез операция XOR на данните в кеша на страниците. Поради логическа грешка възникват условия, които позволяват презаписване на 1 байт в кеша на страниците на избрана позиция. Повтаряйки операциите, могат байт по байт да се променят съдържанието на всеки файл в кеша на страниците.
Всички операции за четене от файлове първо извеждат съдържанието от страничния кеш. При модифициране на данни в страничния кеш, операциите за четене от файл ще доведат до връщане на не реално съхранявана информация на носителя, а на подменени данни. Експлоатирането на уязвимостта се състои в промяна на страничния кеш за изпълним файл с флаг suid root, предварително прочетен, за да попадне в страничния кеш. В предложеното от изследователите експлоит, първите 192 байта на файла /usr/bin/su в страничния кеш се перезаписват с код, който стартира /usr/bin/sh. Последващото стартиране на утилитата „su“ води до това, че в паметта ще бъде заредена не оригиналната изпълнима файл от носителя, а променената копия от страничния кеш.
За да се експлоатира уязвимостта Fragnesia, в системата трябва да е разрешено създаването на пространства за имена на идентификатори на потребители (user namespace). В Ubuntu такава операция по подразбиране е забранена, но може да бъде разрешена чрез sysctl „kernel.apparmor_restrict_unprivileged_userns=0“ или профили AppArmor. В останалите дистрибуции наличността на „user namespace“ за непривилегировани потребители зависи от настройката на sysctl „kernel.unprivileged_userns_clone“ (ако е 0, е забранено).
Актуализации с поправки за ядрото на Linux и пакети с ядро в дистрибутивите все още не са публикувани. Състоянието на отстраняването на уязвимостите в дистрибутивите може да се оцени на следните страници: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora. Като обходен маршрут за защита можете да блокирате зареждането на ядрени модули esp4 и esp6:
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 2>/dev/null; true"
Източник: opennet.ru
