CVE-2026-68368
NoneCVSS
—
EPSS
0.2%
Published
Aug 10, 2026
CISA due date
—
Cloudanix analysis
A problem in handling certain USB network connections could let a connected device read pieces of the computer's internal memory that should stay private.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Missing bounds validation in ncm_unwrap_ntb() permits a malicious USB host to supply NTB headers with datagram offsets and lengths that exceed the declared block or remaining skb buffer, causing skb_put_data() to copy kernel memory from skb_shared_info into a network skb and resulting in an information disclosure.
Why it matters to the business
Attackers with physical or emulated USB access may obtain fragments of kernel memory that could contain credentials, keys, or other sensitive data, increasing risk of further compromise; the issue affects Linux-based USB gadget devices with moderate ecosystem prevalence.
How an attack unfolds
An attacker acting as a malicious USB host crafts one or more NTB blocks containing invalid datagram lengths or offsets that reference memory beyond the supplied buffer; when the gadget processes the malformed NTB, the missing checks allow adjacent kernel structures to be copied into the outgoing network skb, disclosing memory contents to the attacker.
How to fix it
Apply the upstream fix that adds checks for sufficient buffer space before parsing NTB headers, handling of zero-length blocks, enforcement that block lengths never exceed remaining buffer space, and strict datagram boundary validation; update to a kernel containing the resolution for f_ncm.
How to confirm the fix worked
Confirm the patch is present by inspecting the ncm_unwrap_ntb() function for the added length and boundary checks; test with a USB host emulator supplying oversized or out-of-bounds NTB descriptors and verify that no excess data is copied into the skb.
Typical attack path
- Attacker connects a malicious or emulated USB host to a vulnerable Linux USB gadget device
- Host transmits one or more NTB frames with crafted block lengths and datagram descriptors that exceed actual buffer boundaries or remaining skb data
- ncm_unwrap_ntb() parses the headers without verifying block length against remaining buffer or datagram bounds within the block
- skb_put_data() copies data from skb_shared_info into the network skb
- Attacker receives the resulting skb containing leaked kernel memory
How to detect it
Review kernel logs for anomalies around usb gadget or f_ncm processing; inspect network traffic originating from the gadget for unexpectedly large or malformed skbs; correlate with USB connection events from untrusted hosts.
What your security team should do
- Prioritize kernel updates on all systems exposing USB gadget functionality, especially those reachable by untrusted hosts
- Restrict USB gadget interfaces to trusted hosts only via physical or policy controls until patched
- Monitor kernel changelogs for the f_ncm fix and schedule deployment within standard update cycles
The record
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_ncm: validate datagram bounds in ncm_unwrap_ntb() When unpacking host-supplied NTBs, ncm_unwrap_ntb() checks datagram length against frame_max but does not verify that the datagram fits within the declared block length. Additionally, when decoding multiple NTBs from a single socket buffer, subsequent block lengths are not checked against the actual remaining buffer data. With these checks missing, a malicious USB host can specify datagram offsets and lengths that point beyond the block, or supply secondary NTB headers declaring lengths larger than the buffer. skb_put_data() then copies adjacent kernel memory from skb_shared_info into the network skb. Fix this by verifying that sufficient buffer space remains for the NTB header before parsing, handling zero-length block declarations, ensuring that block lengths never exceed the remaining buffer space, and verifying that each datagram payload stays strictly within the block boundary.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|