CVE-2026-23448
Received Received - Intake
Out-of-Bounds Read in Linux cdc_ncm USB Network Driver

Publication date: 2026-04-03

Last updated on: 2026-04-03

Assigner: kernel.org

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-03
Last Modified
2026-04-03
Generated
2026-05-07
AI Q&A
2026-04-03
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability exists in the Linux kernel's USB CDC NCM (Network Control Model) driver, specifically in the function cdc_ncm_rx_verify_ndp16(). The function is responsible for validating that the Network Datagram Pointer (NDP) header and its Data Pointer Entries (DPE) fit within the socket buffer (skb).

The issue arises because the validation incorrectly checks the size of the DPE array against the total skb length as if the NDP were always at offset 0, ignoring the actual offset (ndpoffset). This means that when the NDP is located near the end of the Network Transfer Block (NTB), the DPE entries can extend beyond the skb data buffer even though the check passes.

As a result, the function cdc_ncm_rx_fixup() may read out-of-bounds memory when iterating over the DPE array, potentially leading to memory safety issues.


How can this vulnerability impact me? :

This vulnerability can lead to out-of-bounds memory reads in the Linux kernel's USB CDC NCM driver. Such memory safety issues can cause system instability, crashes, or potentially allow an attacker to read sensitive kernel memory.

Depending on the context and exploitability, this could be leveraged for information disclosure or to aid in privilege escalation attacks, compromising the security and reliability of affected systems.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart