cve-2026-98432 (linux behind opnsense fw)

Started by paepcke, October 31, 2026, 11:11:20 PM

Previous topic - Next topic
October 31, 2026, 11:11:20 PM Last Edit: November 01, 2026, 12:01:37 AM by paepcke
https://atlasum.net/blog/cve-2026-98432-linux-ipv4-tcp-uaf

- does not impact FreeBSD
- does impact every Linux behind your (OPNSense-) Firewall that accepts TCP packets

Is there away to identify and drop all impacted packets? With nft i can do ...

nft add table ip cve_2026_98432
nft add chain ip cve_2026_98432 pre '{ type filter hook prerouting priority -300; }'
nft add rule ip cve_2026_98432 pre meta l4proto tcp ip hdrlength gt 5 counter drop


From my understanding:
- pf scrub does not care for tcp (options)
- pf is not able to identify tcp options
- ipfw can (but only well known specific, but can not scrub unknown? maybe by tcp header lenght?)
- firewall chaining is not recommended
- firewall chaining is not part of opnsense (but can be done via script manually)

Any other options/ ideas ? (other than chain/migrate to nft based firewall or dump the complete traffic through ids / suricate screen? )







November 01, 2026, 12:08:34 PM #1 Last Edit: November 01, 2026, 12:12:12 PM by Monviech (Cedrik)
PF has an allow-opts filter-rule modifier. By default, PF blocks packets containing IPv4 options. A pass rule needs allow-opts to permit them.

If you check your ruleset in /tmp/rules.debug you can grep if your ruleset contains rules with allow-opts.

Also if its on a non quick automatic rule that would allow-opts, you can create a quick rule in the same direction that blocks options.

https://docs.opnsense.org/manual/firewall.html#settings

Check the filter tab, its available (advanced setting)
Hardware:
DEC740

November 01, 2026, 01:59:52 PM #2 Last Edit: November 01, 2026, 11:05:09 PM by pfry Reason: Missing quote
Huh! I'd assumed they were looking at the TCP header Data Offset field (possible using netfilter) - I didn't look closely at the CVE. Makes it easy to filter (as I've always done by default).

For folks like me who sit in the GUI and are too lazy to grep, "Firewall: Diagnostics: Statistics": -> "rules", expand the rulesets, CTRL-f "opts". Should be one: "let out anything from firewall host itself".

Quote from: Monviech (Cedrik) on November 01, 2026, 12:08:34 PMPF has an allow-opts filter-rule modifier. By default, PF blocks packets containing IPv4 options. A pass rule needs allow-opts to permit them.

If you check your ruleset in /tmp/rules.debug you can grep if your ruleset contains rules with allow-opts.

Also if its on a non quick automatic rule that would allow-opts, you can create a quick rule in the same direction that blocks options.
So as long as you haven't created any Manual Firewall Rules that Allow TCP traffic to have 'allow-opts' included then even outdated Linux based devices are completely safe behind your OPNsense/FreeBSD based Firewall ?

If so : VERY COOL! :)
Weird guy who likes everything Linux and *BSD on PC/Laptop/Tablet/Mobile and funny little ARM based boards :)

IP options are ok!

cve-2026-98432 is about tcp handshake (syn) and associated tcp options in the tcp header

The problem is: The FreeBSD pf firewall is able to track tcp session state, but has from my understanding currently no interface to investigate and normalize tcp header anomalies.

Thats a problem. For this specific CVE and in general for the fast moving ai driven exploit market.




Today at 10:14:05 AM #5 Last Edit: Today at 10:18:25 AM by Monviech (Cedrik)
Maybe open a ticket upstream if you feel like something is missing that you need.

https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Base%20System

But from what I read here its about IP Options, and not TCP options, but maybe I misunderstand something.

https://access.redhat.com/security/vulnerabilities/RHSB-2026-016
Filter Incoming IPv4 Packets Containing IP Options
The following nftables table drops incoming IPv4 TCP packets that contain IP options, which reduces exposure to this vulnerability but cannot fully prevent it. Ordinary application traffic is generally expected to remain unaffected, because standard TCP options are carried in the TCP header and continue to be permitted.
Hardware:
DEC740

Today at 10:27:55 AM #6 Last Edit: Today at 10:36:48 AM by abulafia
AI recommended to enable "synproxy" state handling for incoming traffic to those Linux servers. The TCP SYN session should then terminate at OPnsense and a clean TCP stream go from OPnsense to the server.

Alternatively (better?) use a reverse proxy on OPnsense. That definitely terminates the TCP connection at OPnsense, which as a BSD system is not affected by this Linux bug.

Quote from: abulafia on <strong>Today</strong> at 10:27:55 AMAlternatively (better?) use a reverse proxy on OPnsense. That definitely terminates the TCP connection at OPnsense, which as a BSD system is not affected by this Linux bug.

...creating new security threats in the process.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, Leox LXT-010H-D

1100 down / 450 up, Bufferbloat A+