Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-23111-nftables-lab — Проверка подверженности и безопасная лаборатория одноразовых ВМ для CVE-2026-23111 (повышение привилегий на локальном уровне из-за use-after-free в nf_tables Linux). Защита: обнаружение, смягчение, лаборатория с несколькими дистрибутивами. Без эксплойта. | Kitploit
Инструменты/GitHubGitHub/ishankaru/cve-2026-23111-nftables-lab
Повышение привилегийАнализ уязвимостейАудит конфигурацииОбучение и ОбразованиеПодобранные РесурсыПобег из КонтейнераЛаборатории и Практика
GitHubishankaru/cve-2026-23111-nftables-lab

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-23111-nftables-lab

Проверка подверженности и безопасная лаборатория одноразовых ВМ для CVE-2026-23111 (повышение привилегий на локальном уровне из-за use-after-free в nf_tables Linux). Защита: обнаружение, смягчение, лаборатория с несколькими дистрибутивами. Без эксплойта.

Репозиторий
293 месяцев назадЕщё не проверено

CVE-2026-23111 nf_tables LPE: проверка подверженности и безопасная лаборатория

Оборонительные средства и воспроизводимая виртуальная машина для CVE-2026-23111 — use-after-free локальное повышение привилегий в nf_tables ядра Linux (инвертированная проверка активности элемента в nft_map_catchall_activate(), ошибка «off by !»). Непривилегированный локальный пользователь может повысить привилегии до root и выйти из контейнера через непривилегированные пользовательские пространства имён.

Этот репозиторий не содержит эксплойта. В нём представлены: проверяющий скрипт только для чтения, скрипт для создания действительно непривилегированного пользователя и определения ВМ, чтобы вы могли безопасно воспроизвести ошибку и изучить публичные исследования. Полная цепочка получения root находится в раскрытиях по ссылкам ниже, а не здесь.

Полный отчёт: https://techearl.com/cve-2026-23111-nftables-lpe

Файлы

  • check-exposure.sh — детектор только для чтения: версия ядра по сравнению с исправленной сборкой, наличие nf_tables, предусловие с непривилегированным userns, а также сигнатуры крахов в логе ядра.
  • setup-unprivileged-user.sh — создаёт пользователя labuser без прав sudo и доказывает, что он непривилегирован. Смысл теста LPE в том, чтобы начать с пользователя, который ещё не может стать root.
  • Vagrantfile — одноразовые ВМ с Debian 12 и AlmaLinux 10 (дистрибутивы, которые Multipass не может запустить).

Почему ВМ, а не контейнер

Контейнер использует ядро хоста. Запуск эксплойта ядра внутри контейнера запускает его против реального ядра хоста, поэтому «тест» может скомпрометировать реальную машину. Используйте одноразовую ВМ со своим собственным ядром.

Дистрибутивы и программы запуска

Multipass запускает только Ubuntu, поэтому для остальных используется Vagrant.

Фиксация уязвимого ядра (для каждого дистрибутива)

Каждому дистрибутиву нужен был свой трюк для загрузки действительно пред-исправленного ядра, которое всё ещё имеет рабочую сеть на облачной ВМ:

  • Ubuntu (облачный): используйте старый linux-aws, а не linux-generic. Обычному ядру не хватает драйвера ENA NIC от AWS, и на экземпляре Nitro теряется SSH. sudo apt install -y linux-image-6.8.0-1028-aws (ниже исправленного 6.8.0-1051), установите его по умолчанию в GRUB, перезагрузитесь. На локальной виртуализации обычное ядро подходит.
  • Debian: основной репозиторий содержит только текущее (исправленное) ядро. Добавьте зеркало снэпшотов до исправления и установите облачное ядро (сохраняет ENA): deb [check-valid-until=no trusted=yes] https://snapshot.debian.org/archive/debian/20251201T000000Z/ bookworm main, затем apt install -y linux-image-6.1.0-39-cloud-amd64=6.1.148-1 (ниже исправленного 6.1.164-1, DSA-6163-1).
  • AlmaLinux/Rocky: уязвимые ядра el10_1 находятся в хранилище версии 10.1. Укажите dnf на https://vault.almalinux.org/10.1/BaseOS/x86_64/os/ и выполните dnf install kernel-6.12.0-124.38.1.el10_1, затем .

Запуск (на любой ВМ)

root@kitploit:~
# 1. Создайте действительно непривилегированного пользователя и докажите, что он не может использовать sudo.
#    (useradd, а не adduser от Debian, чтобы работало и на RHEL.)
sudo bash setup-unprivileged-user.sh labuser

# 2. Заключение о подверженности.
sudo ./check-exposure.sh

# 3. От имени labuser — предусловие, затем публичный nft-триггер внутри пространства имён сети.
sudo -u labuser unshare -Ur id     # uid=0 в новом userns = предусловие открыто
                                   # (отклонено на стандартной Ubuntu 24.04 = смягчение работает)

# Публичный триггер FuzzingLabs (catchall GOTO + прерванная транзакция). Приведён здесь в качестве
# документации; этот репозиторий не содержит исполняемого файла эксплойта/триггера.
sudo -u labuser unshare -Urn bash -c '
  nft add table inet t; nft add chain inet t c
  nft add map inet t m "{ type ipv4_addr : verdict; }"
  nft add element inet t m "{ * : goto c }"
  printf "delete element inet t m { * }\ndelete element inet t m { 1.2.3.4 }\n" > /tmp/b.nft
  nft -f /tmp/b.nft; nft flush ruleset'

Эта последовательность запускает ошибочный путь прерывания; она не включает цепочку повышения привилегий, и на стандартном ядре она молчалива (см. ниже).

Что я фактически наблюдал (три варианта, достоверные)

Честный вывод по триггеру: на стандартном рабочем ядре он молчалив. Он запускает ошибочный путь прерывания без краха и вывода в dmesg, даже в цикле с освобождением и повторным использованием. Вывод KASAN: slab-use-after-free в отчётах появляется на ядре с KASAN/отладкой; превращение латентного use-after-free в эксплойт требует кучевую атаку (не в этом репозитории). Лаборатория доказывает, что непривилегированный пользователь достигает ошибки, показывает, что стандартное ограничение AppArmor в Ubuntu блокирует этот путь, и даёт чёткое заключение УЯЗВИМО / СМЯГЧЕНО / ИСПРАВЛЕНО. Она не предоставляет оболочку root, и это сделано намеренно.

Смягчение

Ограничьте непривилегированные пользовательские пространства имён (закрывает реалистичный путь для публичных эксплойтов), затем исправьте ядро.

root@kitploit:~
# Ubuntu 23.10+ (на основе AppArmor, оставляет работоспособными легитимные userns):
echo "kernel.apparmor_restrict_unprivileged_userns=1" | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Остальные системы (полное отключение; установите оба на Debian/Ubuntu):
printf 'kernel.unprivileged_userns_clone=0\nuser.max_user_namespaces=0\n' | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Исправление (Ubuntu 24.04 generic исправлен на 6.8.0-107.107):
sudo apt update && sudo apt install --only-upgrade linux-image-generic && sudo reboot

Ссылки

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-23111
  • Exodus Intelligence "Off By !": https://blog.exodusintel.com/2026/06/08/off-by-exploiting-a-use-after-free-in-the-linux-kernel/
  • Воспроизведение от FuzzingLabs: https://fuzzinglabs.com/repro-cve-2026-23111/
  • Ubuntu: https://ubuntu.com/security/CVE-2026-23111
  • Red Hat: https://access.redhat.com/security/cve/cve-2026-23111
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-23111

Лицензия

MIT. Для оборонительного и образовательного использования.

Скачать инструмент
ДистрибутивЗапуск сПочему
Ubuntu 24.04 / 22.04Multipass (только Ubuntu)Exodus воспроизведён на обоих; в 24.04 ограничение AppArmor userns включено по умолчанию, поэтому показывает работу смягчения.
Debian 12Vagrant (vagrant up debian)Exodus воспроизведён на нём; непривилегированный userns открыт по умолчанию.
AlmaLinux / Rocky 10.1Vagrant (vagrant up alma)Соответствует целевому ядру 6.12.0-124.x.el10 от FuzzingLabs, поэтому их публичный триггер воспроизводится так, как опубликован.
grubby --set-default
ДистрибутивЗагружено уязвимое ядроuserns по умолчаниюЗаключение
Ubuntu 24.046.8.0-1028-awsограничен (AppArmor)СМЯГЧЕНО, не исправлено
Debian 126.1.0-39-cloud (6.1.148-1)открытУЯЗВИМО
AlmaLinux 10.16.12.0-124.38.1.el10_1открытУЯЗВИМО