製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける配列インデックスの検証に関する脆弱性
Title LinuxのLinux Kernelにおける配列インデックスの検証に関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。net: usb: cdc_ncmでは、NDP16のnframes境界チェックにndpoffsetを追加しました。cdc_ncm_rx_verify_ndp16()はNDPヘッダーとそのDPEエントリがskb内に収まっているかを検証します。最初のチェックはndpoffsetを正しく考慮しています:if ((ndpoffset + sizeof(struct usb_cdc_ncm_ndp16)) skb_in-len)。しかし、2つ目のチェックはこれを省略しています:if ((sizeof(struct usb_cdc_ncm_ndp16) + ret * (sizeof(struct usb_cdc_ncm_dpe16))) skb_in-len)。これはNDPがオフセット0にあるかのようにDPE配列サイズをskb全体の長さと比較しており、実際にはndpoffsetにあるべきです。NDPがNTBの末尾近く(大きなwNdpIndex)に配置されると、DPEエントリはskbデータバッファを越えてしまい、チェックを通過してしまいます。その結果、cdc_ncm_rx_fixup()はDPE配列を反復処理する際にバッファ外のメモリを読み取ってしまいます。この問題を解決するために、nframesの境界チェックにndpoffsetを追加し、struct_size_t()を使用してNDPとDPE配列のサイズをより明確に表現するように修正しました。

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

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

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

NVD Vulnerability Information
CVE-2026-23448
Summary

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

net: usb: cdc_ncm: add ndpoffset to NDP16 nframes bounds check

cdc_ncm_rx_verify_ndp16() validates that the NDP header and its DPE
entries fit within the skb. The first check correctly accounts for
ndpoffset:

if ((ndpoffset + sizeof(struct usb_cdc_ncm_ndp16)) > skb_in->len)

but the second check omits it:

if ((sizeof(struct usb_cdc_ncm_ndp16) +
ret * (sizeof(struct usb_cdc_ncm_dpe16))) > skb_in->len)

This validates the DPE array size against the total skb length as if
the NDP were at offset 0, rather than at ndpoffset. When the NDP is
placed near the end of the NTB (large wNdpIndex), the DPE entries can
extend past the skb data buffer even though the check passes.
cdc_ncm_rx_fixup() then reads out-of-bounds memory when iterating
the DPE array.

Add ndpoffset to the nframes bounds check and use struct_size_t() to
express the NDP-plus-DPE-array size more clearly.

Publication Date April 4, 2026, 1:16 a.m.
Registration Date April 15, 2026, 11:24 a.m.
Last Update April 7, 2026, 10:21 p.m.
Related information, measures and tools
Common Vulnerabilities List