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.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 27, 2024 | May 17, 2024 |
| Suse | — | Upgrade kselftests-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-debug-develUpgrade kernel-rt-livepatchUpgrade dtb-caviumUpgrade dtb-alteraUpgrade kernel-source-rtUpgrade cluster-md-kmp-64kbUpgrade dtb-nvidiaUpgrade kernel-64kb-extraUpgrade ocfs2-kmp-defaultUpgrade kernel-rt_debugUpgrade dlm-kmp-rtUpgrade kernel-rt-develUpgrade dtb-appleUpgrade dtb-broadcomUpgrade kernel-develUpgrade gfs2-kmp-azureUpgrade dtb-sprdUpgrade dtb-allwinnerUpgrade dtb-hisiliconUpgrade kernel-devel-rtUpgrade cluster-md-kmp-rtUpgrade kernel-docsUpgrade kernel-default-optionalUpgrade kernel-azure-extraUpgrade reiserfs-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-livepatch-develUpgrade dlm-kmp-defaultUpgrade dtb-amdUpgrade kernel-debugUpgrade kernel-64kb-optionalUpgrade ocfs2-kmp-azureUpgrade kernel-debug-vdsoUpgrade kselftests-kmp-rtUpgrade kernel-obs-buildUpgrade kernel-azureUpgrade kernel-64kb-develUpgrade dtb-renesasUpgrade kernel-defaultUpgrade kernel-default-baseUpgrade kernel-source-vanillaUpgrade kernel-rt-optionalUpgrade dtb-xilinxUpgrade kernel-rt_debug-develUpgrade dtb-socionextUpgrade kernel-rt-extraUpgrade dtb-mediatekUpgrade kernel-default-livepatch-develUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-marvellUpgrade gfs2-kmp-defaultUpgrade kernel-64kb-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-debug-livepatch-develUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-azure-vdsoUpgrade kernel-64kbUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-rtUpgrade kernel-macrosUpgrade reiserfs-kmp-azureUpgrade kernel-devel-azureUpgrade kernel-default-vdsoUpgrade kernel-kvmsmallUpgrade kernel-azure-optionalUpgrade dtb-rockchipUpgrade dtb-apmUpgrade reiserfs-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kernel-source-azureUpgrade kernel-rt-livepatch-develUpgrade kernel-default-extraUpgrade dlm-kmp-azureUpgrade gfs2-kmp-rtUpgrade dtb-armUpgrade dlm-kmp-64kbUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-develUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-defaultUpgrade kernel-default-develUpgrade dtb-qcomUpgrade kernel-sourceUpgrade dtb-freescaleUpgrade dtb-amlogicUpgrade dtb-amazonUpgrade cluster-md-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-kvmsmall-develUpgrade dtb-lgUpgrade dtb-exynosUpgrade ocfs2-kmp-rtUpgrade kernel-syms-azureUpgrade kernel-syms | Jun 13, 2024 | May 17, 2024 |
| Ubuntu | — | Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-aws-lts-20.04Upgrade linux-image-intelUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-5.4.0-1095-gkeopUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-kvmUpgrade linux-image-5.4.0-1112-raspiUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.4.0-1116-kvmUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-5.4.0-1132-gcpUpgrade linux-image-5.4.0-1040-iotUpgrade linux-image-awsUpgrade linux-image-oem-20.04dUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-azureUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-5.4.0-189-generic-lpaeUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-raspiUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1065-awsUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.4.0-1047-xilinx-zynqmpUpgrade linux-image-5.4.0-1128-awsUpgrade linux-image-5.4.0-1088-bluefieldUpgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.4.0-1127-oracleUpgrade linux-image-5.15.0-1068-azureUpgrade linux-image-gkeopUpgrade linux-image-virtualUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-lpaeUpgrade linux-image-gkeUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-bluefieldUpgrade linux-image-raspi2Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.4.0-1075-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-5.4.0-189-genericUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-5.4.0-189-lowlatencyUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-oemUpgrade linux-image-raspi-nolpaeUpgrade linux-image-genericUpgrade linux-image-ibmUpgrade linux-image-gkeop-5.4Upgrade linux-image-5.4.0-1133-azureUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-nvidiaUpgrade linux-image-azure-lts-20.04Upgrade linux-image-5.15.0-116-generic | 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 |
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