製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Title LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。nfnetlink_osfにおいて、フィンガープリント内の個々のオプション長の検証が強化されました。nfnl_osf_add_callback()はopt_numの範囲と文字列のNUL終端を検証しますが、個々のオプション長フィールドはこれまでチェックしていませんでした。長さゼロのオプションはfoptsizeの合計がゼロでもnf_osf_match_one()がオプションマッチングループに入る原因となり、ctx-optpがNULLの場合にはTCPオプションなしのパケットとマッチしてしまいます。これにより、一般保護違反が発生していました。また、MSSオプション(種別=2)で長さが4未満の場合、nf_osf_match_one()がoptp[2]およびoptp[3]に無条件にアクセスしてMSS値を抽出するため、範囲外の読み取りが発生します。RFC 9293のセクション3.2ではMSSオプションは常に正確に4バイト(種別=2、長さ=4)であると規定されていますが、チェックは"!= 4"ではなく" 4"を使用しています。これは4より大きい長さはメモリ安全性の問題を引き起こさず、ctx-optsize == foptsizeのチェックによりバッファが少なくともfoptsizeバイト確保されているためです。パケットマッチングのホットパスでこれらの値を信用するのではなく、追加時に任意のオプションが長さゼロであったり、MSSオプションの長さが4未満である場合にはフィンガープリントを拒否するようにしています。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date March 26, 2026, midnight
Registration Date April 27, 2026, 10:53 a.m.
Last Update April 27, 2026, 10:53 a.m.
CVSS3.0 : 重要
Score 7.1
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Affected System
Linux
Linux Kernel 2.6.31
Linux Kernel 2.6.31.1 以上 5.10.253 未満
Linux Kernel 5.11 以上 5.15.203 未満
Linux Kernel 5.16 以上 6.1.167 未満
Linux Kernel 6.13 以上 6.18.20 未満
Linux Kernel 6.19 以上 6.19.10 未満
Linux Kernel 6.2 以上 6.6.130 未満
Linux Kernel 6.7 以上 6.12.78 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月27日]
  掲載
April 27, 2026, 10:53 a.m.

NVD Vulnerability Information
CVE-2026-23397
Summary

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.

Summary

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:

nfnetlink_osf: validar longitudes de opciones individuales en huellas digitales

nfnl_osf_add_callback() valida los límites de opt_num y la terminación NUL de cadena, pero no verifica los campos de longitud de opciones individuales. Una opción de longitud cero hace que nf_osf_match_one() entre en el bucle de coincidencia de opciones incluso cuando foptsize suma cero, lo que coincide con paquetes sin opciones TCP donde ctx-&gt;optp es NULL:

Oops: fallo de protección general
KASAN: desreferencia de puntero nulo en el rango [0x0000000000000000-0x0000000000000007]
RIP: 0010:nf_osf_match_one (net/netfilter/nfnetlink_osf.c:98)
Traza de llamada:
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)

Además, una opción MSS (tipo=2) con longitud &lt; 4 causa lecturas fuera de límites cuando nf_osf_match_one() accede incondicionalmente a optp[2] y optp[3] para la extracción del valor MSS. Si bien la sección 3.2 de RFC 9293 especifica que la opción MSS es siempre exactamente de 4 bytes (Tipo=2, Longitud=4), la verificación usa '&lt; 4' en lugar de '!= 4' porque las longitudes mayores que 4 no causan problemas de seguridad de la memoria -- el búfer está garantizado para ser de al menos foptsize bytes por la verificación ctx-&gt;optsize == foptsize.

Rechazar huellas digitales donde cualquier opción tenga longitud cero, o donde una opción MSS tenga longitud menor que 4, en el momento de la adición en lugar de confiar en estos valores en la ruta crítica de coincidencia de paquetes.

Publication Date March 26, 2026, 8:16 p.m.
Registration Date April 27, 2026, 12:20 p.m.
Last Update April 25, 2026, 12:18 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 2.6.31.1 5.10.253
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 5.15.203
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 6.1.167
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 6.6.130
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 6.12.78
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.20
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.10
cpe:2.3:o:linux:linux_kernel:2.6.31:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List