| 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 |
| 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 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月27日] 掲載 |
April 27, 2026, 10:53 a.m. |
| 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 Oops: general protection fault Additionally, an MSS option (kind=2) with length < 4 causes Reject fingerprints where any option has zero length, or where an MSS |
|---|---|
| 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->optp es NULL: Oops: fallo de protección general Además, una opción MSS (tipo=2) con longitud < 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 '< 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->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. |
| 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:*:*:*:*:*:* | |||||