In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_ncm: validate...
🔗 CVE IDs covered (1)
📋 Description
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.
🔗 References (10)
- https://nvd.nist.gov/vuln/detail/CVE-2026-68368
- https://git.kernel.org/stable/c/1febec7e47cdcd01f43fb0211094e3010474666e
- https://git.kernel.org/stable/c/40c706a0224bde194667e3378c689b542fec4b44
- https://git.kernel.org/stable/c/41fd5f2fb0027d3773ae949e3247c2e0a2a7fe5c
- https://git.kernel.org/stable/c/e07751d0527ccc2a1c32eb0b0b7da3b4b9b5381f
- https://git.kernel.org/stable/c/fff1059d139ef798bab917990524faaf25854ca8
- https://git.kernel.org/stable/c/35d15bbaec0557330e774ec31412ef508de6e0e0
- https://git.kernel.org/stable/c/6b2be489eaa6293e60549005d91f15ceb150510f
- https://git.kernel.org/stable/c/f87ed889f0f7417b8938c98d8833f559b755373c
- https://github.com/advisories/GHSA-jmw8-f562-3f2g