Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
cve-2026-98432-mitigation — Interim nftables mitigation for CVE-2026-98432, automatic rollback and Russian administrator guide. Not a kernel patch. | Kitploit
Tools/GitHubGitHub/zombiepm/cve-2026-98432-mitigation
Defensive ToolsVulnerability AnalysisScripting & AutomationConfiguration AuditingNetwork SecurityMisconfigurationIncident Response
GitHubzombiepm/cve-2026-98432-mitigation

cve-2026-98432-mitigation

Interim nftables mitigation for CVE-2026-98432, automatic rollback and Russian administrator guide. Not a kernel patch.

View Repository
45 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

cve-2026-98432-mitigation

Validate License: MIT

Temporary protection for Linux servers: a narrow IPv4 TCP filter, state verification, backup and rollback. The audit separates the kernel fix from the filter's operation.

Audit:       работающее ядро → пакет → основание → UNKNOWN при нехватке данных
Protection:  inet + bridge → строгая проверка → откат через 180 секунд
Validation:  обычный TCP / IP options / UDP в отдельном namespace
Monitoring:  проверка по таймеру → журнал ошибок, без изменения firewall

Это не патч ядра и не гарантия устранения всех вариантов эксплуатации. Скрипт устанавливает узкий сетевой фильтр для известного IPv4 TCP/IP-options пути CVE-2026-98432. Окончательное исправление — ядро с подтверждённым исправлением именно этой CVE и загрузка в него.

Актуальность рекомендаций проверена 1 ноября 2026 года. Перед применением проверьте свежий статус у производителя вашего дистрибутива.

Почему одного GODEBUG недостаточно

В демонстрации Anthropic использовался MPTCP listener. Go Security Team предупреждает: сама ошибка находится в общем IPv4 TCP-коде ядра, поэтому отсутствие MPTCP-сокетов не доказывает безопасность. GODEBUG=multipathtcp=0 — дополнительное ограничение известного пути атаки, а не замена исправлению ядра.

Этот скрипт не меняет MPTCP, не устанавливает обновления, не перезапускает приложения и не перезагружает сервер. Фильтр работает и для уже открытых слушателей.

Что именно блокируется

Две отдельные таблицы nftables:

  • inet cve_2026_98432_guard: IPv4 TCP-пакеты с длиной IP-заголовка больше 20 байт;
  • bridge cve_2026_98432_guard: аналогичные пакеты на мостах.

Остальной трафик проходит дальше к существующим правилам. Полного flush ruleset нет, правила Docker/Kubernetes/SSH и других сервисов не заменяются.

Это фильтрация IPv4 options, а не TCP options. Обычные TCP timestamps, window scaling, SACK и стандартные SSH/HTTPS-подключения не блокируются этим условием. Легитимный TCP-трафик с IPv4 options тоже будет отброшен: проверьте требования вашей сети.

Поддерживаемая установка

Нужны Linux, root, nft, Python 3.8+, Bash и systemd и поддержка nftables inet/bridge в ядре. Скрипт не включает дистрибутивный firewall-сервис и не устанавливает зависимости. Проверка --check выявляет отсутствие необходимых возможностей до применения.

Пример установки отсутствующего инструмента, если это соответствует политике сервера:

# Debian / Ubuntu:
sudo apt-get install nftables python3
# RHEL / Rocky / AlmaLinux:
sudo dnf install nftables python3

OpenWrt, RouterOS, BSD, Windows, old NAS devices, containers without root/CAP_NET_ADMIN, and systems without systemd are not handled by this installer. They require separate vendor instructions. The script cannot be considered a universal vulnerability scanner. For the manual profile Alpine/WSL, see the separate instruction.

First — audit

bash mitigate.sh --audit
sudo bash mitigate.sh --audit --json

Аудит только читает метаданные и настройки. Он не сканирует сеть, не запускает эксплойт, не загружает обновления и не меняет firewall. Без root часть результатов будет UNKNOWN. Отчёт может содержать имена интерфейсов и PID; перед публикацией обезличьте его.

Поле JSONЧто означает
patch.statePATCHED, VULNERABLE или UNKNOWN для работающего ядра
enforcement.enforcementACTIVE_VERIFIED только при точном совпадении обеих таблиц
persistence.stateCONFIGURED — unit включён; реальный reboot этим не проверен
coverage.statePARTIAL_OR_UNKNOWN: namespaces/CNI/NetLabel требуют отдельного разбора
rollback_timer, monitor_timerСостояние автоматического отката и необязательного контроля

schema_version: 1. Код выхода 0 у --audit означает, что сбор отчёта завершён, не отсутствие уязвимости. Проверяйте независимые поля и reason.

Patch assessment сопоставляет работающее ядро с точным пакетом. Встроенные vendor-baselines проверены 01.11.2026 только для Debian 12/13: linux 6.1/6.12 и bookworm linux-6.12. Они основаны на Debian tracker. Для остальных веток, Ubuntu, WSL и непроверенных дистрибутивов результат остаётся UNKNOWN, а не выводится из номера uname или одного упоминания CVE в changelog. Для известных vendor trackers отчёт содержит ссылку. Это доверие метаданным пакета, не аттестация бинарника; custom kernels и livepatch проверяются отдельно.

Аудит ограничен 32 видимыми netns: показывает число MPTCP-слушателей, но не доказывает покрытие namespaces. CIPSO остаётся UNKNOWN, если нет достаточных данных; отсутствие netlabelctl не доказывает отсутствие labeling.

Быстрое применение администратором

Сначала скачайте и прочитайте код. Не используйте curl | sudo bash.

git clone https://github.com/ZombiePm/cve-2026-98432-mitigation.git
cd cve-2026-98432-mitigation
less mitigate.sh
sudo bash mitigate.sh --check
sudo bash mitigate.sh --apply

When NetLabel/CIPSO or MLS policy is detected, enforcement stops before installation changes. After a compatibility analysis, explicit risk confirmation:

sudo bash mitigate.sh --apply --accept-ipv4-options-risk

This flag accepts the risk of disrupting legitimate traffic with IP options, rather than extending protection. If no labeling signs are found, compatibility is still marked as UNKNOWN.

After --apply, an automatic rollback occurs after 180 seconds. Keep the current terminal. Open a new SSH connection to the server and check critical services from the outside: VPN, websites, APIs, email, cluster exchange.

If everything works, from the new connection:

cd cve-2026-98432-mitigation
sudo bash mitigate.sh --status
sudo bash mitigate.sh --confirm

--confirm cancels the rollback timer. Without it, the protection will be removed automatically. After confirmation, systemd will load the filter on the next server boot. Do not reboot the server before confirming or manually rolling back.

Apply to one node at a time. For Kubernetes and clusters, first make sure connectivity is preserved, then move on to the next node.

Checking status

sudo bash mitigate.sh --status
sudo nft list table inet cve_2026_98432_guard
sudo nft list table bridge cve_2026_98432_guard
systemctl status cve-2026-98432-guard.service
journalctl -u cve-2026-98432-guard.service --no-pager

The counter packets 0 means no matching packets, not the absence of protection. Checking programs that use MPTCP separately:

sudo ss -Mlnp

Do not add -t if you want to see only MPTCP: this will add regular TCP sockets to the sample. Even empty MPTCP output does not confirm remediation of the CVE.

After a reboot and any firewall changes/reloads, repeat --status. Another administrator or a firewall manager performing a full flush ruleset may remove these tables. In that case, first sort out the controlling configuration; to reload the saved filter:

sudo systemctl restart cve-2026-98432-guard.service

Optional state verification

After verification from a new SSH connection and --confirm:

sudo bash mitigate.sh --watch-enable
systemctl status cve-2026-98432-check.timer
journalctl -u cve-2026-98432-check.service --no-pager
sudo bash mitigate.sh --watch-disable
Download Tool