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

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

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

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

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

Категории

Все категории
Loading categories
check-cve-2026-23111 — Скрипт для проверки системы на уязвимость к CVE-2026-23111 | Kitploit
Инструменты/GitHubGitHub/criann/check-cve-2026-23111
Повышение привилегийСканеры уязвимостейАнализ уязвимостейАудит конфигурацииРазведка угрозОбучение и ОбразованиеРеагирование на Инциденты
GitHubcriann/check-cve-2026-23111

check-cve-2026-23111

Скрипт для проверки системы на уязвимость к CVE-2026-23111

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

Популярное

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

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

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

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

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

CVE-2026-23111 Защитный проверочный скрипт

Обзор

CVE-2026-23111 — это уязвимость ядра Linux в nf_tables, которая может быть использована для локального повышения привилегий непривилегированным пользователем в системах, где доступны пользовательские пространства имён и nftables.[1][2] Публичные рекомендации от производителей и правительственных организаций описывают её как локальную проблему, затрагивающую дистрибутивы Linux, и подчёркивают, что основным исправлением является установка патча.[3][4]

Этот репозиторий содержит защитный проверочный скрипт, предназначенный для оценки того, создаёт ли хост технические условия, связанные с данной CVE, не предоставляя эксплойт для повышения привилегий. Он проверяет соответствующие условия ядра и среды выполнения, опционально загружает модуль nf_tables для полного функционального тестирования, пытается выполнить контролируемый непривилегированный путь проверки с помощью unshare и nft, собирает локальные диагностические трассы и классифицирует хост по операционным вердиктам, таким как «вероятно безопасен», «заблокирован локальной политикой» или «доступен уязвимый путь».[1][5]

Что такое CVE

Согласно NVD, CVE-2026-23111 — это уязвимость ядра Linux в nf_tables, исправленная как логическая ошибка в netfilter, которая может быть использована для локального повышения привилегий от непривилегированного пользователя через пользовательские пространства имён и nftables в уязвимых конфигурациях.[1] Уведомление безопасности Ubuntu описывает тот же путь эксплуатации высокого уровня и отслеживает состояния уязвимых и исправленных пакетов по выпускам.[2]

Red Hat сообщает, что локальный пользователь с низким уровнем привилегий может использовать проблему для отказа в обслуживании или потенциально для повышения привилегий, и документирует путь смягчения, основанный на предотвращении загрузки модуля nf_tables, если это приемлемо для эксплуатации.[3] Национальные рекомендации от Канадского центра кибербезопасности также указывают затронутым организациям на обновления от производителей и упоминают регенерацию initramfs при использовании блокирующих модуль механизмов смягчения.[4]

Что делает скрипт

Скрипт предназначен для защитной оценки подверженности, а не для эксплуатации. Он предназначен для:

  • Определения работающего ядра, семейства дистрибутива и соответствующих настроек усиления безопасности среды выполнения.
  • Проверки наличия CONFIG_USER_NS и CONFIG_NF_TABLES.[1]
  • Анализа kernel.unprivileged_userns_clone и user.max_user_namespaces для оценки доступности непривилегированных пользовательских пространств имён.
  • Обнаружения наличия жёсткого запрета modprobe (install nf_tables /bin/false) или слабого чёрного списка для модуля nf_tables.
  • Проверки журнала изменений RPM ядра от вендора на наличие записи о бэкпорте CVE-2026-23111 (только для RHEL-семейства).
  • Снятия отпечатка /proc/kallsyms для уязвимого символа (nft_map_catchall_activate) по сравнению с исправленным символом (nft_catchall_set_activate) до любого взаимодействия с модулем.
  • Опциональной загрузки nf_tables через modprobe при указании (см. ниже) и автоматической выгрузки при выходе.

Скрипт сохраняет журналы в подкаталог каталога скрипта и удаляет их по умолчанию, если не используется --keep-logs.

Политика загрузки модуля

По умолчанию скрипт никогда не загружает nf_tables. Если модуль ещё не загружен на момент запуска скрипта, все функциональные тесты nft пропускаются, и вердикт выводится только на основе версии ядра, отпечатка kallsyms, конфигурации modprobe, журнала изменений RPM и свидетельств политики LSM.

Этот консервативный стандарт позволяет избежать непреднамеренного расширения поверхности атаки на производственных хостах. Для включения полного функционального тестирования на контролируемой или инструментированной системе используйте --allow-load-module от root (см. ниже).

Использование

root@kitploit:~
# По умолчанию — без загрузки модуля, вердикт только на основе свидетельств политики
./check_cve_2026_23111.sh
./check_cve_2026_23111.sh --color
./check_cve_2026_23111.sh --keep-logs
./check_cve_2026_23111.sh --color --keep-logs

# Полное функциональное тестирование — загружает (и выгружает) nf_tables, требует root
sudo ./check_cve_2026_23111.sh --allow-load-module
sudo ./check_cve_2026_23111.sh --allow-load-module --color --keep-logs

Параметры

Когда использовать --allow-load-module

Используйте --allow-load-module, когда вам нужен вердикт с наибольшей степенью уверенности на изолированной, непроизводственной или специально созданной тестовой ВМ. Типичные сценарии:

  • Ядро в уязвимом диапазоне проверяется перед развёртыванием патча от вендора.
  • Тестовая система имеет включённый KASAN или другие инструменты, и вы хотите наблюдать трассы ядра.
  • Модуль не используется на целевом хосте, и требуется полная сквозная проверка пути для аудита.

Не используйте --allow-load-module на производственных хостах, где nf_tables намеренно заблокирован или где его загрузка нарушит политику усиления безопасности.

Предохранительные проверки для --allow-load-module

Перед попыткой загрузить модуль скрипт выполняет следующие проверки и завершает работу с ошибкой, если любая из них не выполняется:

  1. Жёсткий запрет modprobe (install nf_tables /bin/false) не должен присутствовать в /etc/modprobe.d/.
  2. modprobe должна быть доступна в системе.
  3. Скрипт должен выполняться от root (uid 0).

Если модуль успешно загружен скриптом, при выходе вызывается modprobe -r nf_tables через обработчик cleanup(), независимо от того, как завершился скрипт (успех, ошибка или CTRL+C).

Модель вердиктов

Скрипт использует операционные вердикты, а не результаты эксплуатации:

Эти вердикты предназначены для поддержки приоритизации патчей и защитной сортировки, а не для замены проверки статуса пакетов от вендора.

Покрытие версий ядра

Скрипт сопоставляет работающее ядро с задокументированными точками исправления в upstream:

Рекомендуемые меры по смягчению

Основное рекомендуемое действие — установить обновление ядра от вендора и перезагрузиться в исправленное ядро.[2][3][4] Поскольку эксплуатация зависит от локальной поверхности атаки ядра, дополнительное усиление может уменьшить подверженность, пока патч планируется или проверяется.[5][6]

Приоритетные действия

  1. Установите патч ядра, используя официальные рекомендации дистрибутива, и перезагрузитесь в исправленную версию.[2][3][4]
  2. Ограничьте непривилегированные пользовательские пространства имён, если это позволяют бизнес-требования, поскольку задокументированный путь атаки зависит от их доступности непривилегированным пользователям.[1][5][6]
  3. Отключите или заблокируйте загрузку nf_tables, если система не требует функциональности nftables и изменение было проверено на операционное влияние.[3][4]
  4. Ограничьте привилегированные сетевые возможности, такие как пути доступа, включающие CAP_NET_ADMIN, и уменьшите количество учётных записей, которые могут манипулировать состоянием брандмауэра.[5]

Примеры шагов по усилению

Ограничение непривилегированных пользовательских пространств имён:

root@kitploit:~
echo 'kernel.unprivileged_userns_clone=0' > /etc/sysctl.d/99-cve-2026-23111.conf
echo 'user.max_user_namespaces=0' >> /etc/sysctl.d/99-cve-2026-23111.conf
sysctl --load /etc/sysctl.d/99-cve-2026-23111.conf

Блокировка загрузки модуля nf_tables, когда это безопасно с точки зрения эксплуатации:

root@kitploit:~
echo 'install nf_tables /bin/false' > /etc/modprobe.d/disable-nf_tables.conf
rmmod nf_tables 2>/dev/null || true

Если используется механизм смягчения на основе блокировки загрузки модуля, некоторые рекомендации советуют пересоздать initramfs, чтобы заблокированный модуль не загружался во время ранней загрузки.[4]

Примечание для Ubuntu

Ubuntu документирует ограничения AppArmor для непривилегированных пользовательских пространств имён как способ уменьшения поверхности атаки, а не как полную замену исправлений ядра.[6] Хост может казаться менее подверженным при тестировании среды выполнения, поскольку путь атаки блокируется локально, хотя долгосрочное устранение всё равно требует установки исправленного пакета ядра от вендора.[2][6] Скрипт проверяет эффективность ограничений AppArmor, пытаясь выполнить фактический вызов unshare --user и проверяя, работает ли CAP_NET_ADMIN внутри пространства имён пользователя+сети.

Примечание для Red Hat

Red Hat явно указывает предотвращение загрузки модуля nf_tables в качестве меры смягчения для CVE-2026-23111, когда такое изменение уместно для среды.[3] Скрипт обнаруживает эту конфигурацию через check_modprobe_deny() и различает жёсткий запрет (install nf_tables /bin/false, который блокирует загрузку по требованию) и слабый чёрный список (который этого не делает). В системах RHEL-семейства скрипт также проверяет журнал изменений RPM работающего ядра на наличие записи о бэкпорте CVE-2026-23111, что позволяет вынести вердикт, подтверждённый вендором, независимо от номера версии upstream.

Официальные ссылки

  • NVD: CVE-2026-23111 Detail [1]
  • Ubuntu Security: CVE-2026-23111 [2]
  • Red Hat Security: CVE-2026-23111 [3]
  • Canadian Centre for Cyber Security advisory: AL26-011 [4]
  • Ubuntu AppArmor user namespace restriction overview: Understanding AppArmor User Namespace Restriction [6]

Область применения и безопасность

Этот README и сопутствующий скрипт предназначены для защитной проверки, инвентаризации и планирования смягчения последствий. Они не заменяют рекомендации вендоров, проверку на уровне пакетов или стандартные процессы управления патчами и не должны использоваться как замена применению официальных исправлений, описанных в связанных рекомендациях.[2][3][4]


📚 Образовательный репозиторий для исследований в области безопасности

Репозиторий для изучения, тестирования и исследования концепций кибербезопасности в контролируемых средах.


⚠️ Отказ от ответственности в области безопасности и юридический отказ от ответственности

Назначение

Этот репозиторий предназначен только для образовательных и авторизованных исследований в области безопасности.

Он разработан, чтобы помочь пользователям изучать:

  • Уязвимости безопасности
  • Концепции песочниц и изоляции
  • Безопасное кодирование и защитные практики

Использование только с разрешения

Используйте этот репозиторий только в средах, где у вас есть разрешение, например:

  • Личные лабораторные стенды или виртуальные машины
  • Docker или изолированные среды
  • Авторизованное тестирование на проникновение
  • Обучение кибербезопасности или академические исследования

Несанкционированное или незаконное использование строго запрещено.


Отсутствие ответственности

Автор и участники не несут ответственности за любой ущерб, неправильное использование, юридические проблемы или убытки, вызванные этим проектом.

Используя этот репозиторий, вы соглашаетесь с тем, что:

  • Вы несёте ответственность за свои действия
  • Вы будете использовать его законно и этично
  • Проект предоставляется без каких-либо гарантий

Этическое использование

Этот проект предназначен для:

  • Защитных исследований в области безопасности
  • Образования в области кибербезопасности
  • Повышения осведомлённости об уязвимостях
  • Исследований безопасных систем и программного обеспечения

Пожалуйста, соблюдайте практики ответственного раскрытия информации и соблюдайте все применимые законы.


Контакты

Для ответственного раскрытия информации или сотрудничества свяжитесь с сопровождающим репозитория через GitHub.

Скачать инструмент
--allow-load-module
  • Выполнения ограниченного шага проверки unshare -U -n --map-root-user + nft при загруженном модуле, с записью stdout, stderr и недавних сообщений ядра.
  • Проверки, что unshare --user действительно создаёт пространство имён и что CAP_NET_ADMIN работает внутри него, чтобы подтвердить, действительно ли ограничения AppArmor или SELinux эффективны.
  • Выделения того, блокируют ли локальные средства контроля безопасности, такие как AppArmor или SELinux, проверяемый путь.[6]
  • Вывода вердикто-ориентированных результатов с опциональной цветовой подсветкой для облегчения сортировки.
  • ПараметрОписание
    --allow-load-moduleРазрешить скрипту загружать nf_tables через modprobe, если модуль ещё не загружен. Включает полный тест пути catchall в nft и тест эффективности CAP_NET_ADMIN. Модуль автоматически выгружается при выходе. Требует root. Отклоняется, если уже установлен жёсткий запрет modprobe. Используйте только на непроизводственных или инструментированных системах.
    --colorВключить цветной вывод в stdout, если терминал поддерживает.
    --keep-logsСохранять журналы и трассы в каталоге скрипта вместо удаления при выходе.
    --helpПоказать информацию об использовании и выйти.
    ВердиктЗначение
    not-affectedВерсия ядра ниже 5.13; функция catchall-элементов ещё не была введена, и уязвимый путь кода отсутствует.
    likely-patched-vendor-confirmedCVE-2026-23111 найдена в журнале изменений RPM ядра от вендора, что подтверждает бэкпортированное исправление независимо от версии upstream.
    likely-patched-upstream-confirmedВерсия ядра находится в исправленном диапазоне upstream и функциональный тест nft вернул ненулевой результат без сигнала от ядра — наиболее сильное статическое + динамическое свидетельство безопасного состояния.
    likely-patched-upstreamВерсия ядра находится в исправленном диапазоне upstream, но функциональный тест не выполнялся (модуль отсутствует или результат неубедителен). Всё равно следует проверить статус патча от вендора.
    likely-safe-or-patchedСкрипт не подтвердил путь эксплуатации; причина неоднозначна: исправленное ядро, отсутствие уязвимого кода или неявная локальная блокировка.
    blocked-by-local-policyПроверяемый путь заблокирован AppArmor, SELinux, ограничениями пользовательских пространств имён или запретом modprobe.[6] Блокировки политикой не заменяют патч от вендора.
    exposed-path-availableХост предоставляет путь userns + nftables, совместимый с задокументированными предпосылками эксплуатации.[1][5]
    strong-signal-lab-confirmationНаблюдался сигнал в журнале ядра, совместимый с повреждением памяти, связанным с nf_tables. Подтверждайте только в одноразовой, инструментированной лабораторной среде.
    prerequisites-missingОтсутствуют необходимые диагностические инструменты (unshare, nft); не выполнено значимой проверки среды выполнения.
    ВеткаИсправлено вКоммит upstream
    6.13.x+≥ 6.13.1f41c5d1
    6.12.x≥ 6.12.128c760ba
    6.6.x≥ 6.6.75b9b6573
    6.1.x≥ 6.1.1288b68a45
    6.2–6.5, 6.7–6.11EOL upstreamтолько бэкпорт от дистрибутива
    5.15.xзависит от дистрибутиваAmazon Linux: ALAS2KERNEL-5.15-2026-098
    5.10.xзависит от дистрибутиваAmazon Linux 2: ожидается по состоянию на март 2026
    5.4.xзависит от дистрибутиваAmazon Linux 2: ожидается по состоянию на март 2026
    5.13–5.14EOL upstreamтолько бэкпорт от дистрибутива
    < 5.13не подверженофункция catchall отсутствует