Critical Linux Kernel IPv4 TCP | CVE-2026-98432
CVE-2026-98432: Critical Linux Kernel IPv4 TCP Use-After-Free
CVE-2026-98432 is a critical use-after-free race condition in the Linux kernel’s IPv4 TCP connection handshake path. It affects kernels from roughly 4.4 onward (introduced by commit 079096f103fa) and carries a CVSS score of 9.8.
A remote, unauthenticated attacker who can reach a listening TCP socket can trigger the flaw by sending carefully timed TCP SYN packets that carry IPv4 options. This can crash the kernel, corrupt memory, or (under specific conditions such as an MPTCP listener) potentially lead to remote code execution. The bug only fires when the initial packet includes IP options — something almost never present in normal traffic.
What You Should Do
Update the Kernel
Drop Packets with IP Options
Disable MPTCP
Temporary Mitigation (nftables + systemd)
Create the nftables ruleset
table inet cve_2026_98432 {
chain input {
type filter hook input priority -310; policy accept;
ip protocol tcp ip hdrlength > 5 counter drop
}
}
Create the systemd unit
sudo tee /etc/systemd/system/cve-2026-98432.service >/dev/null <<'EOF'
[Unit]
Description=Drop IPv4 TCP packets with IP options (CVE-2026-98432 mitigation)
Wants=network-pre.target
Before=network-pre.target
After=sys-subsystem-net-devices-*.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/nft -f /etc/nftables/cve-2026-98432.nft
ExecStop=/usr/sbin/nft delete table inet cve_2026_98432
[Install]
WantedBy=multi-user.target
EOF
Enable and start it
sudo systemctl daemon-reload
sudo systemctl enable --now cve-2026-98432.service
Additional Temporary Mitigation: Disable MPTCP
Disable MPTCP immediately
sudo sysctl -w net.mptcp.enabled=0
Make it persistent across reboots
echo 'net.mptcp.enabled=0' | sudo tee /etc/sysctl.d/99-disable-mptcp.conf
sudo sysctl --system
Removal After Kernel Update
Remove the nftables mitigation
sudo systemctl disable --now cve-2026-98432.service
sudo rm /etc/systemd/system/cve-2026-98432.service
sudo rm /etc/nftables/cve-2026-98432.nft
sudo systemctl daemon-reload
Re-enable MPTCP if you disabled it
sudo rm /etc/sysctl.d/99-disable-mptcp.conf
sudo sysctl -w net.mptcp.enabled=1
sudo sysctl --system
Questions for the Community
Have you applied the mitigation or a kernel update yet?
Any issues with the nftables rule?
Alternative approaches
These steps are temporary only. The correct long-term fix is updating to a patched kernel. Test the rule and sysctl change in a non-production environment first, and monitor the nftables counter after deployment.
Disclaimer
This content is for educational and informational purposes only. It is not technical advice. Security configurations should be tested thoroughly in your environment. Always verify official advisories from your distribution and apply official kernel updates as soon as they become available.
DISCUSSION
No replies yet. Be the first to join the discussion!