In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error
When ncm function is working and then stop usb0 interface for link down, eth_stop() is called. At this piont, accidentally if usb transport error should happen in usb_ep_enable(), 'in_ep' and/or 'out_ep' may not be enabled.
After that, ncm_disable() is called to disable for ncm unbind but gether_disconnect() is never called since 'in_ep' is not enabled.
As the result, ncm object is released in ncm unbind but 'dev->port_usb' associated to 'ncm->port' is not NULL.
And when ncm bind again to recover netdev, ncm object is reallocated but usb0 interface is already associated to previous released ncm object.
Therefore, once usb0 interface is up and eth_start_xmit() is called, released ncm object is dereferrenced and it might cause use-after-free memory.
[function unlink via configfs] usb0: eth_stop dev->port_usb=ffffff9b179c3200 --> error happens in usb_ep_enable(). NCM: ncm_disable: ncm=ffffff9b179c3200 --> no gether_disconnect() since ncm->port.in_ep->enabled is false. NCM: ncm_unbind: ncm unbind ncm=ffffff9b179c3200 NCM: ncm_free: ncm free ncm=ffffff9b179c3200 <-- released ncm
[function link via configfs] NCM: ncm_alloc: ncm alloc ncm=ffffff9ac4f8a000 NCM: ncm_bind: ncm bind ncm=ffffff9ac4f8a000 NCM: ncm_set_alt: ncm=ffffff9ac4f8a000 alt=0 usb0: eth_open dev->port_usb=ffffff9b179c3200 <-- previous released ncm usb0: eth_start dev->port_usb=ffffff9b179c3200 <-- eth_start_xmit() --> dev->wrap() Unable to handle kernel paging request at virtual address dead00000000014f
This patch addresses the issue by checking if 'ncm->netdev' is not NULL at ncm_disable() to call gether_disconnect() to deassociate 'dev->port_usb'. It's more reasonable to check 'ncm->netdev' to call gether_connect/disconnect rather than check 'ncm->port.in_ep->enabled' since it might not be enabled but the gether connection might be established.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | May 8, 2024 | May 1, 2024 |
| Suse | — | Upgrade dtb-armUpgrade kernel-rt_debug-livepatch-develUpgrade dlm-kmp-rtUpgrade kernel-obs-qaUpgrade kernel-syms-rtUpgrade kselftests-kmp-rtUpgrade reiserfs-kmp-rtUpgrade kernel-rt-develUpgrade kernel-64kb-develUpgrade kernel-docsUpgrade dtb-socionextUpgrade kernel-rt_debug-vdsoUpgrade kernel-devel-rtUpgrade kernel-default-livepatch-develUpgrade kernel-macrosUpgrade kernel-obs-buildUpgrade dtb-xilinxUpgrade kernel-rt-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kernel-default-baseUpgrade dtb-nvidiaUpgrade kernel-rt_debugUpgrade kernel-rt-extraUpgrade reiserfs-kmp-azureUpgrade kselftests-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade kernel-debug-vdsoUpgrade kernel-default-manUpgrade gfs2-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-64kb-extraUpgrade cluster-md-kmp-64kbUpgrade dtb-renesasUpgrade dlm-kmp-azureUpgrade kernel-default-base-rebuildUpgrade kernel-default-extraUpgrade dtb-mediatekUpgrade dlm-kmp-defaultUpgrade kernel-defaultUpgrade dtb-amlogicUpgrade dtb-sprdUpgrade kernel-azure-vdsoUpgrade dtb-apmUpgrade dtb-rockchipUpgrade cluster-md-kmp-defaultUpgrade dtb-broadcomUpgrade dtb-lgUpgrade kernel-sourceUpgrade kernel-debugUpgrade kernel-azure-optionalUpgrade kernel-rt-optionalUpgrade dtb-exynosUpgrade gfs2-kmp-64kbUpgrade dtb-alteraUpgrade cluster-md-kmp-azureUpgrade kernel-default-optionalUpgrade gfs2-kmp-azureUpgrade kernel-develUpgrade kernel-rt-vdsoUpgrade dtb-qcomUpgrade kernel-azure-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-rtUpgrade kernel-64kb-livepatch-develUpgrade kernel-source-azureUpgrade kernel-debug-develUpgrade kernel-azureUpgrade kernel-syms-azureUpgrade kernel-default-develUpgrade ocfs2-kmp-64kbUpgrade kernel-symsUpgrade kernel-source-vanillaUpgrade kernel-default-livepatchUpgrade reiserfs-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade dtb-amazonUpgrade kernel-source-rtUpgrade kernel-azure-baseUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kbUpgrade kselftests-kmp-64kbUpgrade kernel-zfcpdumpUpgrade dtb-caviumUpgrade kernel-kvmsmall-vdsoUpgrade dtb-freescaleUpgrade dtb-allwinnerUpgrade kselftests-kmp-azureUpgrade kernel-docs-htmlUpgrade kernel-azure-livepatch-develUpgrade dtb-marvellUpgrade cluster-md-kmp-rtUpgrade kernel-devel-azureUpgrade kernel-rt-livepatchUpgrade gfs2-kmp-rtUpgrade kernel-azure-extraUpgrade kernel-64kbUpgrade dtb-amdUpgrade ocfs2-kmp-defaultUpgrade kernel-kvmsmall-develUpgrade kernel-rt_debug-develUpgrade dtb-hisiliconUpgrade kernel-64kb-optionalUpgrade dtb-appleUpgrade kernel-kvmsmall | Jun 12, 2024 | May 1, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-lts-xenialUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-4.15.0-237-genericUpgrade linux-image-aws-lts-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-oracleUpgrade linux-image-nvidiaUpgrade linux-image-fipsUpgrade linux-image-azure-fdeUpgrade linux-image-azure-lts-20.04Upgrade linux-image-5.15.0-1068-azureUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-4.4.0-1143-awsUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-awsUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-aws-hweUpgrade linux-image-aws-fipsUpgrade linux-image-4.15.0-1180-awsUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-azure-cvmUpgrade linux-image-4.15.0-1142-oracleUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-5.4.0-216-genericUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-5.4.0-216-generic-lpaeUpgrade linux-image-oemUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-5.4.0-1133-kvmUpgrade linux-image-bluefieldUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-5.4.0-216-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.4.0-1149-gcpUpgrade linux-image-genericUpgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-5.4.0-1064-xilinx-zynqmpUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-virtualUpgrade linux-image-5.4.0-1092-ibmUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-5.4.0-1146-awsUpgrade linux-image-5.4.0-1105-bluefieldUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oem-20.04bUpgrade linux-image-lowlatencyUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-5.4.0-1149-gcp-fipsUpgrade linux-image-4.15.0-1135-fipsUpgrade linux-image-ibmUpgrade linux-image-oem-24.04aUpgrade linux-image-4.15.0-2118-aws-fipsUpgrade linux-image-azure-lts-18.04Upgrade linux-image-4.15.0-1173-gcpUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-4.4.0-1113-fipsUpgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-oem-20.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.4.0-1051-iotUpgrade linux-image-ibm-classicUpgrade linux-image-4.15.0-1188-azureUpgrade linux-image-4.15.0-237-lowlatencyUpgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-4.15.0-2081-gcp-fipsUpgrade linux-image-oem-20.04dUpgrade linux-image-5.4.0-1151-azureUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-azureUpgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-5.15.0-116-genericUpgrade linux-image-gkeopUpgrade linux-image-oem-20.04cUpgrade linux-image-5.4.0-1144-oracleUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-intel-iotgUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-raspi2Upgrade linux-image-4.4.0-1181-awsUpgrade linux-image-azure-fipsUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-4.4.0-1144-kvmUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-kvmUpgrade linux-image-aws-lts-18.04Upgrade linux-image-6.8.0-1010-azureUpgrade linux-image-5.4.0-1120-fipsUpgrade linux-image-4.15.0-2097-azure-fipsUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-1151-azure-fipsUpgrade linux-image-oem-24.04Upgrade linux-image-5.15.0-1065-awsUpgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-gcp-fipsUpgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-raspiUpgrade linux-image-gcpUpgrade linux-image-4.15.0-1163-kvmUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-intelUpgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-4.4.0-268-genericUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.4.0-1146-aws-fipsUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-gkeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-4.4.0-268-lowlatency | Jul 12, 2024 | May 1, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 1, 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