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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-98432-nft-mitigation — Временное средство смягчения на nftables для уязвимости ядра Linux CVE-2026-98432 (UAF при обработке параметров IPv4 в tcp_v4_syn_recv_sock) в виде воспроизводимого навыка агента | Kitploit
Инструменты/GitHubGitHub/nfodor/cve-2026-98432-nft-mitigation
Оборонительные ИнструментыБезопасность контейнеровАнализ уязвимостейАудит конфигурацииСетевая безопасностьНеправильная КонфигурацияРеагирование на Инциденты
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
nfodor/cve-2026-98432-nft-mitigation

cve-2026-98432-nft-mitigation

Временное средство смягчения на nftables для уязвимости ядра Linux CVE-2026-98432 (UAF при обработке параметров IPv4 в tcp_v4_syn_recv_sock) в виде воспроизводимого навыка агента

Репозиторий
2310 дней назадЕщё не проверено
Поделиться

Устранение уязвимости CVE-2026-98432 с помощью nft

Навык агента, который применяет, проверяет, сохраняет и впоследствии удаляет временное средство защиты хоста для уязвимости ядра Linux CVE-2026-98432 (CVSS 9.8): единственное правило nftables, отбрасывающее TCP-пакеты, несущие параметры IPv4, — единственный ввод, достигающий use-after-free в inet_opt/ireq_opt в tcp_v4_syn_recv_sock().

Полезный контекст: Frontier Red Team компании Anthropic публично описал работающий PoC с повышением привилегий от неаутентифицированного пользователя до root против серверов, предоставляющих доступ через слушатель MPTCP (октябрь 2026); сообщений об эксплуатации в реальных условиях не поступало. CNA ядра оценивает в 9.8; upstream и Red Hat оценивают в 8.1 (высокая сложность атаки). Исправление от производителя — бэкпорты класса ядра Ubuntu 6.8.0-149 — пока работающее ядро не содержит исправления, это правило служит временной мерой. Оно ограничено одним полем одного заголовка одного протокола, поэтому обычный трафик не затрагивается.

Это правило не является новым — рассматривайте его как упакованный предшествующий опыт. См. раздел «Предшествующий опыт» ниже; вклад этого репозитория — воспроизводимая форма навыка агента плюс производственные подводные камни.

Содержание

ПутьЧто
SKILL.mdНавык — триггеры frontmatter, набор правил, проверки, сохранение, подводные камни, удаление
files/cve98432.nftГотовый к копированию набор правил nftables (prerouting, приоритет −300)
files/nft-cve98432.serviceГотовый к копированию юнит systemd (сохранение)

Установка (навык агента)

cp -R cve-2026-98432-nft-mitigation ~/.claude/skills/     # Claude Code
cp -R cve-2026-98432-nft-mitigation ~/.agents/skills/     # agents-style runtimes

description во frontmatter — это поверхность обнаружения: агенты выбирают этот навык, когда их просят устранить CVE-2026-98432, «исправление TCP/IP», UAF в параметрах IPv4 ядра или удалить митигацию после выхода исправленного ядра от вендора.

Перед применением — три проверки

  1. Уже исправлено ли работающее ядро? Бэкпорты меняют номера версий — проверьте changelog ядра, которое вы фактически используете:
    zgrep -c CVE-2026-98432 /usr/share/doc/linux-modules-$(uname -r)/changelog.Debian.gz   # Debian/Ubuntu
    rpm -q --changelog kernel-core-$(uname -r) | grep -c CVE-2026-98432                     # RHEL/Rocky/Alma
    
    > 0 = исправлено, пропустите митигацию. (Также проверьте трекер вашего вендора; и apt-cache policy linux-image-generic для установленного, но не загруженного более нового ядра.)
  2. MPTCP-слушатели (ss -lnMp): опубликованный PoC нацелен на них, а Go ≥ 1.24 по умолчанию слушает с MPTCP на ядрах, которые это позволяют. sysctl net.mptcp.enabled=0 влияет только на новые сокеты — уже открытые слушатели сохраняют MPTCP до перезапуска их сервиса (GODEBUG=multipathtcp=0 согласно команде Go).
  3. Сети с метками CIPSO: если cat /sys/kernel/security/lsm перечисляет SELinux или Smack и вы используете сопоставление NetLabel CIPSOV4, опции IPv4 там легитимны — это правило нарушит этот путь. Не применяйте в сетях с метками CIPSO (RFC 7126 обсуждает этот компромисс).

Использование (требуются права root)

  1. Установите files/cve98432.nft и files/nft-cve98432.service.
  2. nft -c -f /usr/local/sbin/cve98432.nft — проверка разбора; требуются права root (без root происходит сбой на netlink: cache initialization failed).
  3. systemctl daemon-reload && systemctl enable --now nft-cve98432.service
  4. Перезапустите юнит дважды — доказательство идемпотентности. Строка destroy table … должна быть первой строкой файла: добавленная в конец, она создаёт таблицу, а затем уничтожает её, оставляя пустой набор правил, при этом сервис всё равно завершается с кодом 0.
  5. nft list table inet cve98432 должна показывать meta l4proto tcp ip hdrlength > 5 counter drop в цепочке с priority -300 (до conntrack, в соответствии с опубликованным правилом).
  6. Сосуществование: пользовательская table inet … не принадлежит iptables, поэтому iptables-restore / инструменты ufw / firewalld оставляют её нетронутой (выполните ваш restore один раз и повторно выведите список для подтверждения).

Удаление после установки исправленного ядра и перезагрузки: раздел 7 в SKILL.md.

Контейнеры: правило должно также присутствовать в их netns

Состояние nftables привязано к сетевому пространству имён. Правила хоста видят трафик контейнера только там, где он пересекает хост (например, контейнер → внешняя сеть); трафик, остающийся внутри собственного пространства имён контейнера (контейнер → его собственный loopback/IP), никогда не проходит через prerouting хоста — однако ядро общее, поэтому код внутри контейнера всё равно может локально достичь UAF. Внедрите тот же набор правил в каждый запущенный контейнер:

# Docker (host-side nsenter keeps the needed capabilities)
for c in $(docker ps -q); do
  pid=$(docker inspect -f '{{.State.Pid}}' "$c")
  nsenter -t "$pid" -n /usr/sbin/nft -f /usr/local/sbin/cve98432.nft
done
# LXC (privileged CLI as root)
for c in $(lxc-ls -1 2>/dev/null); do lxc-attach -n "$c" -- nft -f /usr/local/sbin/cve98432.nft; done

Пространства имён контейнеров не сохраняют правила nft — повторно запускайте при каждом перезапуске контейнера (подключите это к шагу post-start вашего оркестратора). Предшествующие наработки по этому конкретному пробелу, со скриптами: typhoon1217/cve-2026-98432-mitigation (inject-netns.sh).

Проверка отбрасывания (на стороне клиента)

Достаточно стандартных сокетов — никакой генерации пакетов на сервере: клиент задаёт опцию IPv4 Record Route через setsockopt(IP_OPTIONS) и подключается; обычное подключение проходит успешно, а подключение с опциями должно завершиться по тайм-ауту, пока счётчик правила увеличивается. Готовые клиенты: check-blocked.py / verify-synack.sh в typhoon1217/cve-2026-98432-mitigation. Оговорка из того проекта: клиент, который сам применяет митигацию, также будет отбрасывать SYN-ACK-эхо целевой системы — для чистого вердикта тестируйте с клиента без митигации.

Зачем это правило

  • UAF достижим только через TCP-сегменты, чей заголовок IPv4 несёт опции (IHL > 5); RFC 7126 уже рекомендует маршрутизаторам/межсетевым экранам отбрасывать опции Record Route/Timestamp, так что это ничего реального не ломает.
  • prerouting с priority -300: до conntrack, поэтому отброшенные пакеты никогда не создают состояние conntrack — и, в отличие от input, это также охватывает трафик, пересылаемый в контейнеры/ВМ, который проходит через хост.
  • Семантика сопоставления самопроверяема: nft нормализует сырое @nh,4,4 > 5 в ip hdrlength > 5 — поле IHL, что подтверждается самим инструментом.

Предшествующие наработки (прочитайте)

  • RFC 7126 — фильтрация пакетов IPv4, содержащих опции IPv4
  • typhoon1217/cve-2026-98432-mitigation — то же правило отбрасывания + инъекция в netns контейнера, оговорка про CIPSO, клиенты для проверки (EN/KO)
  • блог getrff.com (29 октября 2026) — то же правило с priority −300, проверки MPTCP, скриптинг для парка машин
  • разбор Atlas по CVE-2026-98432 — опции триггера + правило
  • CIQ KB — "Mitigating CVE-2026-98432 on Rocky Linux" (проверенная процедура правила межсетевого экрана)
  • Red Hat RHSB-2026-016, трекер CVE Ubuntu, NVD

Происхождение

Извлечено из промышленного развёртывания, включая встреченные там сбои: nft -c без root, ошибка порядка destroy в конце, неэкранированный heredoc, молча съедающий \$, и семантика двойного применения. Репозиторий только с документацией — зависимости времени выполнения: nft ≥ 1.0 + systemd; нет набора тестов (н/д).

Скачать инструмент