CVE-2026-23447 Overview
CVE-2026-23447 is an Out-of-Bounds Read vulnerability in the Linux kernel's CDC NCM (Network Control Model) USB driver. The vulnerability exists in the cdc_ncm_rx_verify_ndp32() function, where the DPE (Datagram Pointer Entry) array size is validated against the total skb (socket buffer) length without properly accounting for the ndpoffset value. This oversight allows out-of-bounds memory reads when the NDP32 (Network Datagram Pointer for 32-bit) is positioned near the end of the NTB (NCM Transfer Block).
Critical Impact
This bounds-check bug can allow attackers to read beyond allocated memory boundaries when processing specially crafted USB network packets, potentially leading to information disclosure or system instability.
Affected Products
- Linux kernel (multiple versions with cdc_ncm driver)
- Systems using USB CDC NCM network devices
- Devices utilizing NDP32 protocol for USB networking
Discovery Timeline
- April 3, 2026 - CVE-2026-23447 published to NVD
- April 7, 2026 - Last updated in NVD database
Technical Details for CVE-2026-23447
Vulnerability Analysis
The vulnerability resides in the cdc_ncm_rx_verify_ndp32() function within the Linux kernel's USB CDC NCM driver (net/usb/cdc_ncm.c). This is the same class of bounds-check bug that was previously fixed for NDP16 in a related patch, but the fix was not applied to the NDP32 code path.
When processing incoming USB network packets, the driver validates the size of the DPE array against the socket buffer length. However, the validation logic fails to include the ndpoffset value in the calculation. The ndpoffset represents the offset from the start of the NTB where the NDP structure begins. By not including this offset in the bounds check, the driver may attempt to read memory beyond the allocated buffer when an NDP32 structure is placed near the end of the NTB.
The fix involves adding the ndpoffset to the nframes bounds check and utilizing struct_size_t() to more clearly express the combined size of the NDP structure plus the DPE array.
Root Cause
The root cause is an incomplete bounds validation in cdc_ncm_rx_verify_ndp32(). The function validates that the DPE array fits within the skb data, but calculates the available space from the start of the buffer rather than from the actual NDP32 location. When a malicious or malformed USB device provides an NDP32 structure positioned near the buffer's end boundary, the arithmetic allows reading past the buffer's legitimate data region.
Attack Vector
The attack vector requires local access through a malicious USB device. An attacker could craft a USB CDC NCM device that sends specially constructed NTB packets with NDP32 structures positioned near the buffer boundary. When the victim system processes these packets, the vulnerable bounds check would pass validation despite the DPE array extending beyond the allocated memory, resulting in out-of-bounds memory access.
The vulnerability mechanism can be described as follows: when the kernel receives an NCM Transfer Block, it locates the NDP32 structure using the ndpoffset field. The driver then attempts to validate that all datagram pointer entries fit within the received data. The flawed check compares the NDP32 size against the total buffer length, but should instead compare against the remaining space after the ndpoffset. This discrepancy creates a window where memory beyond the buffer can be accessed.
For detailed technical information, see the Linux Kernel Commit 125f932.
Detection Methods for CVE-2026-23447
Indicators of Compromise
- Kernel warnings or errors related to cdc_ncm driver or USB network subsystem
- Unexpected memory access violations in kernel logs referencing cdc_ncm_rx_verify_ndp32
- USB CDC NCM device connections with unusual or malformed packet structures
- System instability when connecting USB network adapters
Detection Strategies
- Monitor kernel logs for out-of-bounds access warnings in the net/usb/cdc_ncm.c module
- Implement USB device monitoring to detect unauthorized or suspicious USB network adapters
- Deploy kernel live patching solutions to detect vulnerable kernel versions
- Use SentinelOne Singularity platform for real-time kernel-level threat detection
Monitoring Recommendations
- Enable kernel KASAN (Kernel Address Sanitizer) in development environments to detect out-of-bounds access
- Configure USB device authorization policies to restrict untrusted USB network devices
- Monitor for unusual USB device enumeration events, particularly CDC NCM class devices
- Implement endpoint detection and response (EDR) solutions with kernel-level visibility
How to Mitigate CVE-2026-23447
Immediate Actions Required
- Update the Linux kernel to a patched version containing the fix
- Review and restrict USB device connection policies on sensitive systems
- Disable automatic USB device enumeration on high-security systems
- Monitor systems for signs of exploitation until patches are applied
Patch Information
The Linux kernel team has released patches across multiple stable branches to address this vulnerability. The fix adds ndpoffset to the nframes bounds check and uses struct_size_t() for clearer size calculation. Patches are available through the following commits:
- Linux Kernel Commit 125f932
- Linux Kernel Commit 7791425
- Linux Kernel Commit a5bd5a2
- Linux Kernel Commit af0d161
- Linux Kernel Commit de70da1
Workarounds
- Blacklist the cdc_ncm kernel module if USB network functionality is not required using modprobe configuration
- Implement USB device whitelisting through udev rules to prevent unauthorized USB network adapters
- Use physical USB port blocking or disable USB ports in BIOS/UEFI on systems that don't require USB networking
- Deploy endpoint protection solutions with USB device control capabilities
# Configuration example - Blacklist cdc_ncm module
echo "blacklist cdc_ncm" | sudo tee /etc/modprobe.d/disable-cdc_ncm.conf
sudo update-initramfs -u
# Alternative: Restrict USB device authorization
echo "0" | sudo tee /sys/bus/usb/devices/*/authorized
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


