In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: ncm: Fix handling of zero block length packets
While connecting to a Linux host with CDC_NCM_NTB_DEF_SIZE_TX set to 65536, it has been observed that we receive short packets, which come at interval of 5-10 seconds sometimes and have block length zero but still contain 1-2 valid datagrams present.
According to the NCM spec:
"If wBlockLength = 0x0000, the block is terminated by a short packet. In this case, the USB transfer must still be shorter than dwNtbInMaxSize or dwNtbOutMaxSize. If exactly dwNtbInMaxSize or dwNtbOutMaxSize bytes are sent, and the size is a multiple of wMaxPacketSize for the given pipe, then no ZLP shall be sent.
wBlockLength= 0x0000 must be used with extreme care, because of the possibility that the host and device may get out of sync, and because of test issues.
wBlockLength = 0x0000 allows the sender to reduce latency by starting to send a very large NTB, and then shortening it when the sender discovers that there’s not sufficient data to justify sending a large NTB"
However, there is a potential issue with the current implementation, as it checks for the occurrence of multiple NTBs in a single giveback by verifying if the leftover bytes to be processed is zero or not. If the block length reads zero, we would process the same NTB infintely because the leftover bytes is never zero and it leads to a crash. Fix this by bailing out if block length reads zero.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 27, 2024 | May 17, 2024 |
| Suse | — | Upgrade dtb-sprdUpgrade kernel-64kb-extraUpgrade dtb-nvidiaUpgrade kernel-docsUpgrade kernel-rt-livepatchUpgrade kernel-rt_debug-develUpgrade kernel-default-baseUpgrade cluster-md-kmp-rtUpgrade kernel-source-vanillaUpgrade kernel-devel-rtUpgrade gfs2-kmp-azureUpgrade kernel-rt_debugUpgrade kernel-develUpgrade kselftests-kmp-defaultUpgrade kernel-defaultUpgrade kernel-debug-vdsoUpgrade dtb-marvellUpgrade dtb-broadcomUpgrade kernel-rt-optionalUpgrade ocfs2-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade kernel-azure-extraUpgrade kernel-64kb-optionalUpgrade dtb-amdUpgrade kernel-default-optionalUpgrade kernel-rt-develUpgrade kernel-debug-develUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-xilinxUpgrade dtb-hisiliconUpgrade dlm-kmp-rtUpgrade dtb-appleUpgrade kernel-obs-buildUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-debugUpgrade dlm-kmp-defaultUpgrade kselftests-kmp-rtUpgrade ocfs2-kmp-azureUpgrade kernel-azureUpgrade dtb-renesasUpgrade reiserfs-kmp-defaultUpgrade dtb-socionextUpgrade kernel-64kb-develUpgrade dtb-alteraUpgrade dtb-caviumUpgrade cluster-md-kmp-64kbUpgrade kselftests-kmp-azureUpgrade kernel-source-rtUpgrade reiserfs-kmp-rtUpgrade kernel-rt-extraUpgrade dtb-allwinnerUpgrade dtb-mediatekUpgrade gfs2-kmp-defaultUpgrade kernel-kvmsmall-develUpgrade kernel-obs-qaUpgrade reiserfs-kmp-64kbUpgrade dtb-freescaleUpgrade dtb-amazonUpgrade cluster-md-kmp-azureUpgrade kernel-devel-azureUpgrade kernel-kvmsmallUpgrade kernel-debug-livepatch-develUpgrade kernel-default-vdsoUpgrade kernel-rtUpgrade reiserfs-kmp-azureUpgrade dtb-qcomUpgrade kernel-64kb-livepatch-develUpgrade kernel-azure-optionalUpgrade kernel-zfcpdumpUpgrade kernel-source-azureUpgrade kernel-rt-livepatch-develUpgrade dtb-rockchipUpgrade dtb-apmUpgrade dtb-armUpgrade kernel-sourceUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-develUpgrade gfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade kernel-default-livepatchUpgrade kselftests-kmp-64kbUpgrade kernel-azure-vdsoUpgrade kernel-64kbUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-macrosUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-default-extraUpgrade kernel-default-develUpgrade ocfs2-kmp-rtUpgrade kernel-default-base-rebuildUpgrade kernel-syms-azureUpgrade kernel-symsUpgrade kernel-kvmsmall-vdsoUpgrade gfs2-kmp-64kbUpgrade dtb-lgUpgrade dtb-exynosUpgrade kernel-rt-vdsoUpgrade dtb-amlogic | Jun 13, 2024 | May 17, 2024 |
| Ubuntu | — | Upgrade linux-image-lowlatencyUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1127-oracleUpgrade linux-image-genericUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.4.0-189-genericUpgrade linux-image-gkeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-virtualUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-oem-20.04Upgrade linux-image-5.4.0-189-lowlatencyUpgrade linux-image-gkeop-5.4Upgrade linux-image-oem-20.04bUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-gkeopUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-ibmUpgrade linux-image-5.15.0-116-genericUpgrade linux-image-azure-lts-20.04Upgrade linux-image-5.15.0-1068-azureUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.4.0-1133-azureUpgrade linux-image-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-bluefieldUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-raspi2Upgrade linux-image-oracleUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oemUpgrade linux-image-5.4.0-1075-ibmUpgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-5.4.0-1128-awsUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-5.4.0-1047-xilinx-zynqmpUpgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-5.4.0-1040-iotUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-azure-cvmUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1112-raspiUpgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-intelUpgrade linux-image-azure-fdeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.4.0-1116-kvmUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1095-gkeopUpgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-raspiUpgrade linux-image-5.4.0-189-generic-lpaeUpgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-generic-64kUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-1088-bluefieldUpgrade linux-image-5.15.0-1065-awsUpgrade linux-image-awsUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-intel-iotgUpgrade linux-image-gcpUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-azureUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.4.0-1132-gcpUpgrade linux-image-5.15.0-1060-nvidia | Jul 15, 2024 | May 17, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 17, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub