CVE-2026-23397CWE-125

CVE-2026-23397

High · published March 26, 2026

CVSS v3.1
7.1
EPSS
0%
Percentile
1.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

nfnetlink_osf: validate individual option lengths in fingerprints

nfnl_osf_add_callback() validates opt_num bounds and string

NUL-termination but does not check individual option length fields.

A zero-length option causes nf_osf_match_one() to enter the option

matching loop even when foptsize sums to zero, which matches packets

with no TCP options where ctx->optp is NULL:

Oops: general protection fault

KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]

RIP: 0010:nf_osf_match_one (net/netfilter/nfnetlink_osf.c:98)

Call Trace:

nf_osf_match (net/netfilter/nfnetlink_osf.c:227)

xt_osf_match_packet (net/netfilter/xt_osf.c:32)

ipt_do_table (net/ipv4/netfilter/ip_tables.c:293)

nf_hook_slow (net/netfilter/core.c:623)

ip_local_deliver (net/ipv4/ip_input.c:262)

ip_rcv (net/ipv4/ip_input.c:573)

Additionally, an MSS option (kind=2) with length < 4 causes

out-of-bounds reads when nf_osf_match_one() unconditionally accesses

optp[2] and optp[3] for MSS value extraction. While RFC 9293

section 3.2 specifies that the MSS option is always exactly 4

bytes (Kind=2, Length=4), the check uses "< 4" rather than

"!= 4" because lengths greater than 4 do not cause memory

safety issues -- the buffer is guaranteed to be at least

foptsize bytes by the ctx->optsize == foptsize check.

Reject fingerprints where any option has zero length, or where an MSS

option has length less than 4, at add time rather than trusting these

values in the packet matching hot path.

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00122 · 1.9th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2026-03-26T15:16Z
Affected products (15)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.31.1, < 5.10.2535.10.253
linux/linux_kernel≥ 5.11, < 5.15.2035.15.203
linux/linux_kernel≥ 5.16, < 6.1.1676.1.167
linux/linux_kernel≥ 6.2, < 6.6.1306.6.130
linux/linux_kernel≥ 6.7, < 6.12.786.12.78
linux/linux_kernel≥ 6.13, < 6.18.206.18.20
linux/linux_kernel≥ 6.19, < 6.19.106.19.10
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (12)
EPSS history
Timeline
  • 26 MAR 10:22Z
    nfnetlink_osf: validate individual option lengths in fingerprints
    cvelistv5