Description
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
It is observed sometimes when tethering is used over NCM with Windows 11
as host, at some instances, the gadget_giveback has one byte appended at
the end of a proper NTB. When the NTB is parsed, unwrap call looks for
any leftover bytes in SKB provided by u_ether and if there are any pending
bytes, it treats them as a separate NTB and parses it. But in case the
second NTB (as per unwrap call) is faulty/corrupt, all the datagrams that
were parsed properly in the first NTB and saved in rx_list are dropped.
Adding a few custom traces showed the following:
[002] d..1 7828.532866: dwc3_gadget_giveback: ep1out:
req 000000003868811a length 1025/16384 zsI ==> 0
[002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb toprocess: 1025
[002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342
[002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb seq: 0xce67
[002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x400
[002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb ndp_len: 0x10
[002] d..1 7828.532869: ncm_unwrap_ntb: K: Parsed NTB with 1 frames
In this case, the giveback is of 1025 bytes and block length is 1024.
The rest 1 byte (which is 0x00) won't be parsed resulting in drop of
all datagrams in rx_list.
Same is case with packets of size 2048:
[002] d..1 7828.557948: dwc3_gadget_giveback: ep1out:
req 0000000011dfd96e length 2049/16384 zsI ==> 0
[002] d..1 7828.557949: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342
[002] d..1 7828.557950: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x800
Lecroy shows one byte coming in extra confirming that the byte is coming
in from PC:
Transfer 2959 - Bytes Transferred(1025) Timestamp((18.524 843 590)
- Transaction 8391 - Data(1025 bytes) Timestamp(18.524 843 590)
--- Packet 4063861
Data(1024 bytes)
Duration(2.117us) Idle(14.700ns) Timestamp(18.524 843 590)
--- Packet 4063863
Data(1 byte)
Duration(66.160ns) Time(282.000ns) Timestamp(18.524 845 722)
According to Windows driver, no ZLP is needed if wBlockLength is non-zero,
because the non-zero wBlockLength has already told the function side the
size of transfer to be expected. However, there are in-market NCM devices
that rely on ZLP as long as the wBlockLength is multiple of wMaxPacketSize.
To deal with such devices, it pads an extra 0 at end so the transfer is no
longer multiple of wMaxPacketSize.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 2.6.38 | 4.19.308 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.7.7-1 | — |
| Debian 13 | linux | 6.7.7-1 | — |
| Debian 12 | linux | 6.1.82-1 | — |
| Debian 10 | linux | 4.19.316-1 | DLA-3840-1 |
| Debian 10 | linux-5.10 | 5.10.216-1~deb10u1 | DLA-3842-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1044.46 | — |
| Ubuntu 22.04 LTS | linux | 5.15.0-112.122 | USN-6820-1 |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1063.69 | USN-6821-3 |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1066.75 | USN-6821-4 |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1067.76.1 | USN-6821-4 |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1062.70 | USN-6820-1 |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1060.66 | USN-6821-1 |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1046.53 | USN-6821-2 |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1056.59 | USN-6821-1 |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1058.64 | USN-6821-1 |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1060.65 | USN-6821-2 |
| Ubuntu 22.04 LTS | linux-lowlatency | 5.15.0-110.120 | USN-6820-1 |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1058.59 | USN-6820-2 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1026.26 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1015.15 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1061.67 | USN-6821-1 |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1058.61 | USN-6919-1 |
| Ubuntu 22.04 LTS | linux-riscv +31 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1030.34 | USN-6820-1 |
| Ubuntu 20.04 LTS | linux | 5.4.0-186.206 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1126.136 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-aws-5.15 | 5.15.0-1063.69~20.04.1 | USN-6821-3 |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1131.138 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1065.74~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1086.93 | USN-6867-1 |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1130.139 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1062.70~20.04.1 | USN-6820-1 |
| Ubuntu 20.04 LTS | linux-gke +26 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gkeop | 5.4.0-1093.97 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-gkeop-5.15 | 5.15.0-1046.53~20.04.1 | USN-6821-2 |
| Ubuntu 20.04 LTS | linux-hwe-5.15 | 5.15.0-113.123~20.04.1 | USN-6871-1 |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1073.78 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-ibm-5.15 | 5.15.0-1057.60~20.04.1 | USN-6892-1 |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1058.64~20.04.1 | USN-6828-1 |
| Ubuntu 20.04 LTS | linux-iot | 5.4.0-1038.39 | USN-6867-1 |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1114.121 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-lowlatency-hwe-5.15 | 5.15.0-110.120~20.04.1 | USN-6820-1 |
| Ubuntu 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1027.27~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1125.134 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1061.67~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1110.122 | USN-6831-1 |
| Ubuntu 20.04 LTS | linux-riscv-5.15 | 5.15.0-1059.63~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-xilinx-zynqmp | 5.4.0-1045.49 | USN-6831-1 |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 13 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2002.2 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1056.58 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1064.72 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-aws-fips | 5.15.0-1063.69+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-azure-fips | 5.15.0-1065.74+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips | 5.15.0-111.121+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-gcp-fips | 5.15.0-1062.70+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1126.136+fips2 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1131.138+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1100.110 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1130.139+fips1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux +5 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux-aws-5.4 | 5.4.0-1126.136~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-azure-5.4 | 5.4.0-1131.138~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-gcp-5.4 | 5.4.0-1130.139~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-hwe-5.4 | 5.4.0-186.206~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-ibm-5.4 | 5.4.0-1073.78~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-oracle-5.4 | 5.4.0-1125.134~18.04.1 | USN-6831-1 |
| Ubuntu Pro 18.04 LTS | linux-raspi-5.4 | 5.4.0-1110.122~18.04.1 | USN-6831-1 |
| Ubuntu Pro 16.04 LTS | linux +7 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux +3 | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP6 | kernel-64kb +3 | 6.4.0-150600.23.7.3 | SUSE-SU-2024:2203-1 |
| SLES 15 SP6 | kernel-azure +1 | 6.4.0-150600.8.5.4 | SUSE-SU-2024:2135-1 |
| SLES 15 SP6 | kernel-default-base | 6.4.0-150600.23.7.3.150600.12.2.7 | SUSE-SU-2024:2203-1 |
| SLES 15 SP6 | kernel-docs | 6.4.0-150600.23.7.4 | SUSE-SU-2024:2203-1 |
| SLES 15 SP6 | kernel-source | 6.4.0-150600.23.7.2 | SUSE-SU-2024:2203-1 |
| SLES 15 SP6 | kernel-syms | 6.4.0-150600.23.7.1 | SUSE-SU-2024:2203-1 |
| SLES 15 SP6 | kernel-syms-azure | 6.4.0-150600.8.5.1 | SUSE-SU-2024:2135-1 |
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.68.1 | SUSE-SU-2024:2190-1 |
| SLES 15 SP5 | kernel-azure +2 | 5.14.21-150500.33.57.1 | SUSE-SU-2024:2019-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.68.1.150500.6.31.1 | SUSE-SU-2024:2190-1 |
Show 7 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLE Micro 6.1 | kernel-livepatch-MICRO-6-0-RT_Update_5 | 1-1.1 | SUSE-SU-2025:20249-1 |
| SLE Micro 6.1 | kernel-rt +1 | 6.4.0-25.1 | SUSE-SU-2025:20249-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-17.1.1.51 | SUSE-SU-2025:20008-1 |
| SLE Micro 6.0 | kernel-livepatch-MICRO-6-0-RT_Update_5 | 1-1.1 | SUSE-SU-2025:20166-1 |
| SLE Micro 6.0 | kernel-rt +1 | 6.4.0-9.1 | SUSE-SU-2025:20166-1, SUSE-SU-2025:20028-1 |
| SLE Micro 6.0 | kernel-source +2 | 6.4.0-18.1 | SUSE-SU-2025:20008-1 |
| SLE Micro 5.5 | kernel-default | 5.14.21-150500.55.68.1 | SUSE-SU-2024:2190-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.68.1.150500.6.31.1 | SUSE-SU-2024:2190-1 |
| SLE Micro 5.5 | kernel-rt +1 | 5.14.21-150500.13.58.1 | SUSE-SU-2024:2008-1 |
| SLE Live Patching 15 SP6 | kernel-default | 6.4.0-150600.23.7.3 | SUSE-SU-2024:2203-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_1 | 1-150600.1.5.1 | SUSE-SU-2024:2973-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_1 | 1-150600.13.3.7 | SUSE-SU-2024:2203-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.68.1 | SUSE-SU-2024:2190-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_15 +1 | 1-150500.11.3.1 | SUSE-SU-2024:2190-1, SUSE-SU-2024:2008-1 |
| SUSE Real Time Module 15 SP6 | kernel-rt +3 | 6.4.0-150600.10.5.1 | SUSE-SU-2024:2973-1 |
| SUSE Real Time Module 15 SP5 | kernel-rt +3 | 5.14.21-150500.13.58.1 | SUSE-SU-2024:2008-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.6 | dtb-aarch64 +2 | 6.4.0-150600.23.7.1 | SUSE-SU-2024:2203-1 |
| openSUSE Leap 15.6 | kernel-64kb +5 | 6.4.0-150600.23.7.3 | SUSE-SU-2024:2203-1 |
| openSUSE Leap 15.6 | kernel-azure +1 | 6.4.0-150600.8.5.4 | SUSE-SU-2024:2135-1 |
| openSUSE Leap 15.6 | kernel-default-base | 6.4.0-150600.23.7.3.150600.12.2.7 | SUSE-SU-2024:2203-1 |
| openSUSE Leap 15.6 | kernel-docs | 6.4.0-150600.23.7.4 | SUSE-SU-2024:2203-1 |
| openSUSE Leap 15.6 | kernel-rt +3 | 6.4.0-150600.10.5.1 | SUSE-SU-2024:2973-1 |
| openSUSE Leap 15.6 | kernel-source | 6.4.0-150600.23.7.2 | SUSE-SU-2024:2203-1 |
| openSUSE Leap 15.6 | kernel-syms-azure | 6.4.0-150600.8.5.1 | SUSE-SU-2024:2135-1 |
| openSUSE Leap 15.5 | dtb-aarch64 +10 | 5.14.21-150500.55.68.1 | SUSE-SU-2024:2190-1 |
| openSUSE Leap 15.5 | kernel-azure +2 | 5.14.21-150500.33.57.1 | SUSE-SU-2024:2019-1 |
| openSUSE Leap 15.5 | kernel-default-base | 5.14.21-150500.55.68.1.150500.6.31.1 | SUSE-SU-2024:2190-1 |
| openSUSE Leap 15.5 | kernel-rt +3 | 5.14.21-150500.13.58.1 | SUSE-SU-2024:2008-1 |
Advisories 27
- WID-SEC-2024-1188 Linux Kernel: Mehrere Schwachstellen ermöglichen Denial of Service BSI CERT-Bund (WID) · Nov 9, 2026
- USN-6828-1 linux-intel-iotg-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 29, 2026
- USN-6831-1 linux, linux-aws, linux-aws-5.4, linux-azure, linux-azure-5.4, linux-gcp, linux-gcp-5.4, linux-gkeop, linux-hwe-5.4, linux-ibm, linux-ibm-5.4, linux-kvm, linux-oracle, linux-oracle-5.4, linux-raspi, linux-raspi-5.4, linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6919-1 linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6821-4 linux-azure, linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6871-1 linux-hwe-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6867-1 linux-bluefield, linux-iot vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6820-1 linux, linux-gcp, linux-gcp-5.15, linux-lowlatency, linux-lowlatency-hwe-5.15, linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6821-1 linux-gke, linux-ibm, linux-intel-iotg, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6821-2 linux-gkeop, linux-gkeop-5.15, linux-kvm vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6821-3 linux-aws, linux-aws-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6892-1 linux-ibm-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- USN-6820-2 linux-nvidia vulnerabilities Ubuntu Security Notices (USN) · Oct 27, 2026
- SUSE-SU-2025:20166-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20008-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20028-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20249-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- DLA-3840-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-3842-1 linux-5.10 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- ICSA-25-226-15 Siemens SINEC OS CISA ICS & IT advisories · Feb 25, 2026
- SSA-613116 SSA-613116: Multiple Vulnerabilities in Third-Party Components in SINEC OS before V3.1 Siemens ProductCERT · Feb 24, 2026
- SUSE-SU-2024:2973-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2019-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2190-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2008-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2135-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2203-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
References
- https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48
- https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151
- https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd
- https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5
- https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca
- https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e
- https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e
- https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd