
Образовательный репозиторий, описывающий CVE-2026-46300 (Fragnesia) — уязвимость локального повышения привилегий в ядре Linux. Содержит технический анализ, информацию о затронутых системах, индикаторы обнаружения и шаги по устранению для команд защиты.
Репозиторий только для ознакомления. Этот репозиторий не содержит эксплойт-кода. Его цель — проинформировать системных администраторов, инженеров и команды безопасности о характере уязвимости и доступных мерах по устранению.
| Поле | Значение |
|---|---|
| CVE | CVE-2026-46300 |
| Имя | Fragnesia |
| Серьёзность | Высокая (CVSS 7.8) |
| Тип | Локальное повышение привилегий (LPE) |
| Компонент | Ядро Linux — подсистема XFRM ESP-in-TCP |
| Обнаружен | William Bowling (V12 Security / Zellic.io) |
| Раскрытие | 14 мая 2026 |
| Патч upstream | 13 мая 2026 — [PATCH net] net: skbuff: preserve shared-frag marker during coalescing |
| Публичный PoC | ✅ Да (опубликован в день раскрытия) |
| Эксплуатация ITW | ❌ На сегодняшний день не зафиксирована |
Fragnesia — это третья уязвимость из серии, обнаруженной в подсистеме IPsec ядра Linux за две недели:
Dirty Frag (CVE-2026-43284) ──► Copy Fail (CVE-2026-43500) ──► Fragnesia (CVE-2026-46300)
Май 2026 Май 2026 14 мая 2026
По иронии судьбы, патч для Dirty Frag латентно активировал уязвимость Fragnesia — исправление CVE-2026-43284 открыло путь кода, в котором проявился существовавший ранее баг из коммита 2013 года.
"Fragnesia была случайно активирована патчем, исправляющим CVE-2026-43284." — Hyunwoo Kim, обнаруживший Dirty Frag
Уязвимость находится в функции skb_try_coalesce() кода socket-буфера ядра. При объединении фрагментов между буферами маркер SKBFL_SHARED_FRAG не передавался, из-за чего ядро теряло информацию о том, что фрагмент привязан к страницам page cache (например, файл, отображённый в память через splice()).
1. Атакующий открывает TCP-сокет
2. Он выполняет splice() страниц файла только для чтения (например, /usr/bin/su) в очередь приёма
3. Сокет переключается в режим espintcp (ULP)
4. Ядро обрабатывает страницы файла как зашифрованный текст ESP
5. Дешифрование AES-GCM на месте записывает подконтрольные байты в page cache
6. /usr/bin/su в памяти повреждается → выполнение root-кода при следующем вызове
CAP_NET_ADMIN без высоких правsuВсе ядра Linux, выпущенные до 13 мая 2026, включающие механизм SKBFL_SHARED_FRAG.
Затронутые дистрибутивы включают:
Обновить до исправленного ядра:
# Debian / Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
uname -r # Проверить версию нового ядра
# RHEL / AlmaLinux / Rocky Linux
sudo dnf clean metadata && sudo dnf upgrade -y
sudo reboot
# Arch Linux
sudo pacman -Syu
sudo reboot
Если немедленное обновление невозможно:
# Выгрузить активные модули
sudo rmmod esp4 esp6 rxrpc 2>/dev/null; true
# Навсегда заблокировать модули
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
| sudo tee /etc/modprobe.d/fragnesia.conf
# Перегенерировать initramfs (Debian/Ubuntu)
sudo update-initramfs -u
⚠️ Тот же список блокировки модулей, что использовался для Dirty Frag, покрывает и Fragnesia.
# Проверить, загружены ли уязвимые модули
lsmod | grep -E '^esp4|^esp6|^rxrpc'
# Если команда вернула содержимое → система уязвима
# Проверить версию текущего ядра
uname -r
cat /etc/os-release
AF_ALG через Seccomp/etc/passwd, /etc/sudoers, /etc/shadow, /usr/bin/susplice, add_key и unshare для непривилегированных пользователейЕсли эксплуатация подозревалась до применения патча:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
⚠️ Это очищает только копию в памяти. Если атакующий уже получил права root и установил бэкдор, эта команда не поможет — считайте систему полностью скомпрометированной.
Средства обнаружения должны отслеживать:
/usr/bin/su, /usr/bin/sudo, /bin/bash в памятиsplice(), add_key(), unshare() от непривилегированных пользователейespintcp на непривилегированных сокетах пользователей🔎 Средства безопасности, основанные только на анализе файлов на диске, не могут обнаружить эту эксплуатацию, так как бинарный файл на диске остаётся нетронутым.
Этот репозиторий опубликован с исключительно образовательной и защитной целью. Он не содержит эксплойт-кода (PoC).
Любое использование информации из этого репозитория в злонамеренных целях или без явного разрешения на сторонних системах является незаконным и противоречит этике. Автор не несёт ответственности за неправомерное использование этой информации.
Ответственное раскрытие — Если вы обнаружили уязвимость, следуйте практике ответственного раскрытия и свяжитесь с соответствующими командами безопасности перед публикацией.
Maxime288 — github.com/Maxime288
Репозиторий мониторинга безопасности — отслеживание критических уязвимостей Linux
| Дистрибутив | Статус патча |
|---|
| Ubuntu 22.04 / 24.04 | ✅ Исправлено |
| Debian 11 / 12 | ✅ Исправлено |
| AlmaLinux | ✅ Исправлено (до RHEL) |
| Red Hat / RHEL | ✅ Опубликован advisory |
| SUSE / openSUSE | ✅ Опубликован advisory |
| Amazon Linux | ✅ Опубликован advisory |
| Fedora | ✅ Исправлено |
| Arch Linux | ✅ Исправлено |
| CentOS / Rocky Linux | ✅ Исправлено |