
Interimsmäßige nftables-Mitigation für CVE-2026-98432, automatischer Rollback und russischer Administratorleitfaden. Kein Kernel-Patch.
Vorübergehender Schutz für Linux-Server: eng gefasster IPv4-TCP-Filter, Statusprüfung, Sicherung und Rollback. Das Audit trennt die Kernel-Korrektur von der Funktion des Filters.
Audit: работающее ядро → пакет → основание → UNKNOWN при нехватке данных
Protection: inet + bridge → строгая проверка → откат через 180 секунд
Validation: обычный TCP / IP options / UDP в отдельном namespace
Monitoring: проверка по таймеру → журнал ошибок, без изменения firewall
Dies ist kein Kernel-Patch und keine Garantie für die Beseitigung aller Exploit-Varianten. Das Skript installiert einen eng gefassten Netzwerkfilter für den bekannten IPv4-TCP/IP-Options-Pfad von CVE-2026-98432. Die endgültige Behebung ist ein Kernel mit einem bestätigten Fix genau für diese CVE und dessen Einbindung.
Die Aktualität der Empfehlungen wurde am 1. November 2026 überprüft. Prüfen Sie vor der Anwendung den aktuellen Status beim Hersteller Ihrer Distribution.
In der Demonstration von Anthropic wurde ein MPTCP-Listener verwendet. Das Go Security Team warnt: Der Fehler selbst liegt im gemeinsamen IPv4-TCP-Code des Kernels, daher beweist das Fehlen von MPTCP-Sockets keine Sicherheit. GODEBUG=multipathtcp=0 ist eine zusätzliche Einschränkung des bekannten Angriffspfads, kein Ersatz für den Kernel-Fix.
Dieses Skript ändert MPTCP nicht, installiert keine Updates, startet keine Anwendungen neu und startet den Server nicht neu. Der Filter wirkt auch für bereits geöffnete Listener.
Zwei separate nftables-Tabellen:
inet cve_2026_98432_guard: IPv4-TCP-Pakete mit einer IP-Header-Länge von mehr als 20 Bytes;bridge cve_2026_98432_guard: gleichartige Pakete auf Bridges.Der übrige Datenverkehr wird an die bestehenden Regeln weitergeleitet. Es gibt kein vollständiges flush ruleset, Regeln von Docker/Kubernetes/SSH und anderen Diensten werden nicht ersetzt.
Dies ist eine Filterung von IPv4-Options, nicht von TCP-Options. Normale TCP-Timestamps, Window Scaling, SACK und standardmäßige SSH/HTTPS-Verbindungen werden durch diese Bedingung nicht blockiert. Legitimer TCP-Datenverkehr mit IPv4-Options wird ebenfalls verworfen: Prüfen Sie die Anforderungen Ihres Netzwerks.
Erforderlich sind Linux, root, nft, Python 3.8+, Bash und systemd sowie Unterstützung für nftables inet/bridge im Kernel.
Das Skript aktiviert keinen distributionsspezifischen Firewall-Dienst und installiert keine Abhängigkeiten.
Die Prüfung --check erkennt fehlende erforderliche Funktionen vor der Anwendung.
Beispiel für die Installation eines fehlenden Werkzeugs, sofern dies der Serverrichtlinie entspricht:
# Debian / Ubuntu:
sudo apt-get install nftables python3
# RHEL / Rocky / AlmaLinux:
sudo dnf install nftables python3
OpenWrt, RouterOS, BSD, Windows, ältere NAS, Container ohne root/CAP_NET_ADMIN und Systeme ohne systemd werden von diesem Installer nicht unterstützt. Für diese sind separate Anleitungen des Herstellers erforderlich. Das Skript darf nicht als universeller Schwachstellenscanner betrachtet werden. Für das manuelle Profil Alpine/WSL siehe separate Anleitung.
bash mitigate.sh --audit
sudo bash mitigate.sh --audit --json
Die Prüfung liest nur Metadaten und Einstellungen. Sie scannt nicht das Netzwerk, startet
keinen Exploit, lädt keine Updates herunter und ändert keine Firewall. Ohne root werden einige Ergebnisse
UNKNOWN sein. Der Bericht kann Schnittstellennamen und PIDs enthalten; anonymisieren Sie ihn
vor der Veröffentlichung.
| JSON-Feld | Bedeutung |
|---|---|
patch.state | PATCHED, VULNERABLE oder UNKNOWN für den laufenden Kernel |
enforcement.enforcement | ACTIVE_VERIFIED nur bei exakter Übereinstimmung beider Tabellen |
persistence.state | CONFIGURED — Unit ist aktiviert; ein tatsächlicher Reboot wurde damit nicht geprüft |
coverage.state | PARTIAL_OR_UNKNOWN: Namespaces/CNI/NetLabel erfordern eine gesonderte Analyse |
rollback_timer, monitor_timer | Status des automatischen Rollbacks und der optionalen Überwachung |
schema_version: 1. Ein Exit-Code 0 bei --audit bedeutet, dass die Erfassung des Berichts abgeschlossen ist,
nicht dass keine Schwachstelle vorliegt. Prüfen Sie die unabhängigen Felder und reason.
Die Patch-Bewertung gleicht den laufenden Kernel mit dem exakten Paket ab. Die integrierten
Vendor-Baselines wurden am 01.11.2026 nur für Debian 12/13 verifiziert: linux 6.1/6.12
und bookworm linux-6.12. Sie basieren auf dem
Debian tracker.
Für andere Branches, Ubuntu, WSL und ungeprüfte Distributionen bleibt das Ergebnis
UNKNOWN und wird nicht aus der uname-Nummer oder einer einzelnen
CVE-Erwähnung im Changelog abgeleitet. Für bekannte Vendor-Tracker enthält der Bericht einen Link.
Dies ist ein Vertrauen in die Paketmetadaten, keine Attestierung des Binärprogramms;
Custom-Kernel und Livepatch werden separat geprüft.
Die Prüfung ist auf 32 sichtbare Netns beschränkt: Sie zeigt die Anzahl der MPTCP-Listener, beweist aber nicht
die Abdeckung der Namespaces. CIPSO bleibt UNKNOWN, wenn keine ausreichenden
Daten vorliegen; das Fehlen von netlabelctl beweist nicht das Fehlen von Labeling.
Laden Sie zuerst den Code herunter und lesen Sie ihn. Verwenden Sie nicht 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
При обнаружении NetLabel/CIPSO или MLS-политики применение останавливается до изменений установки. После анализа совместимости явное подтверждение риска:
sudo bash mitigate.sh --apply --accept-ipv4-options-risk
Dieses Flag nimmt das Risiko einer Beeinträchtigung legitimen Traffics mit IP options in Kauf, anstatt den Schutz zu erweitern. Wenn keine Anzeichen für labeling gefunden werden, wird die Kompatibilität dennoch als UNKNOWN gekennzeichnet.
Nach --apply gilt ein automatischer Rollback nach 180 Sekunden.
Behalten Sie das aktuelle Terminal. Öffnen Sie eine neue SSH-Verbindung zum Server und prüfen Sie
kritische Dienste von außen: VPN, Websites, APIs, E-Mail, Cluster-Kommunikation.
Wenn alles funktioniert, aus der neuen Verbindung:
cd cve-2026-98432-mitigation
sudo bash mitigate.sh --status
sudo bash mitigate.sh --confirm
--confirm hebt den Rollback-Timer auf. Ohne ihn wird der Schutz automatisch entfernt.
Nach der Bestätigung lädt systemd den Filter beim nächsten Serverstart.
Starten Sie den Server nicht neu, bevor Sie bestätigt oder manuell zurückgerollt haben.
Wenden Sie dies auf jeweils einen Knoten an. Bei Kubernetes und Clustern stellen Sie zunächst sicher, dass die Verbindung erhalten bleibt, und gehen Sie dann zum nächsten Knoten über.
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
Der Zähler packets 0 bedeutet, dass keine übereinstimmenden Pakete vorhanden sind, nicht dass kein Schutz vorhanden ist.
Separate Prüfung von Programmen, die MPTCP verwenden:
sudo ss -Mlnp