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-appleUpgrade kernel-debugUpgrade kernel-rtUpgrade gfs2-kmp-rtUpgrade kernel-source-azureUpgrade dtb-freescaleUpgrade kernel-kvmsmall-vdsoUpgrade kernel-kvmsmallUpgrade dtb-allwinnerUpgrade kernel-azure-livepatch-develUpgrade dtb-marvellUpgrade kernel-docs-htmlUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-azureUpgrade dtb-apmUpgrade kernel-obs-qaUpgrade dtb-xilinxUpgrade dtb-rockchipUpgrade cluster-md-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade kernel-rt-livepatch-develUpgrade kernel-rt_debugUpgrade kernel-macrosUpgrade kernel-default-extraUpgrade kernel-default-base-rebuildUpgrade dtb-renesasUpgrade dtb-amlogicUpgrade kernel-default-baseUpgrade dtb-mediatekUpgrade kernel-azure-vdsoUpgrade dtb-sprdUpgrade kernel-rt_debug-vdsoUpgrade kernel-syms-rtUpgrade dtb-socionextUpgrade dtb-armUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-livepatch-develUpgrade reiserfs-kmp-azureUpgrade kernel-rt-extraUpgrade kernel-debug-livepatch-develUpgrade gfs2-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade kernel-devel-rtUpgrade kernel-obs-buildUpgrade ocfs2-kmp-azureUpgrade kernel-defaultUpgrade kernel-64kb-develUpgrade dlm-kmp-azureUpgrade dtb-nvidiaUpgrade kernel-docsUpgrade kernel-default-manUpgrade dlm-kmp-defaultUpgrade kernel-debug-vdsoUpgrade cluster-md-kmp-64kbUpgrade kernel-64kb-extraUpgrade kernel-rt-develUpgrade kselftests-kmp-defaultUpgrade dtb-caviumUpgrade dtb-qcomUpgrade kernel-64kb-livepatch-develUpgrade kernel-rt-livepatchUpgrade kernel-azure-develUpgrade kernel-rt-optionalUpgrade kernel-source-vanillaUpgrade dtb-hisiliconUpgrade kernel-zfcpdumpUpgrade dlm-kmp-64kbUpgrade dtb-exynosUpgrade kernel-default-vdsoUpgrade kernel-symsUpgrade kernel-sourceUpgrade kernel-64kbUpgrade kernel-azure-optionalUpgrade kernel-devel-azureUpgrade kernel-kvmsmall-develUpgrade cluster-md-kmp-rtUpgrade kernel-develUpgrade kernel-azure-extraUpgrade gfs2-kmp-azureUpgrade kernel-default-optionalUpgrade kernel-rt-vdsoUpgrade dtb-amdUpgrade dtb-broadcomUpgrade gfs2-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-debug-develUpgrade kernel-default-develUpgrade kselftests-kmp-64kbUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-default-livepatchUpgrade kernel-azureUpgrade dtb-lgUpgrade kernel-source-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-azureUpgrade kernel-azure-baseUpgrade ocfs2-kmp-rtUpgrade dtb-altera | Jun 12, 2024 | May 1, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-4.4.0-1113-fipsUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1120-fipsUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-4.15.0-2097-azure-fipsUpgrade linux-image-5.4.0-1051-iotUpgrade linux-image-kvmUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-oracle-lts-18.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-4.4.0-1144-kvmUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-aws-lts-18.04Upgrade linux-image-6.8.0-1010-azureUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-oem-20.04cUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-azureUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-4.15.0-1173-gcpUpgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-4.4.0-268-genericUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-4.4.0-268-lowlatencyUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-6.8.0-38-genericUpgrade linux-image-4.15.0-1188-azureUpgrade linux-image-generic-64kUpgrade linux-image-4.4.0-1181-awsUpgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-5.4.0-1151-azure-fipsUpgrade linux-image-gcp-fipsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-4.15.0-2118-aws-fipsUpgrade linux-image-oem-24.04Upgrade linux-image-5.4.0-1144-oracleUpgrade linux-image-gkeUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-116-genericUpgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-4.15.0-1163-kvmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-4.15.0-2081-gcp-fipsUpgrade linux-image-nvidia-64kUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-intelUpgrade linux-image-ibm-classicUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-5.4.0-1146-aws-fipsUpgrade linux-image-gcpUpgrade linux-image-raspiUpgrade linux-image-oem-20.04dUpgrade linux-image-4.15.0-237-lowlatencyUpgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-5.4.0-1151-azureUpgrade linux-image-raspi2Upgrade linux-image-azure-lts-18.04Upgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-1065-awsUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-5.4.0-1064-xilinx-zynqmpUpgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.4.0-216-lowlatencyUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-5.15.0-1068-azureUpgrade linux-image-oemUpgrade linux-image-5.4.0-1105-bluefieldUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-5.4.0-1133-kvmUpgrade linux-image-5.4.0-1146-awsUpgrade linux-image-virtualUpgrade linux-image-5.4.0-1092-ibmUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-oem-20.04bUpgrade linux-image-5.4.0-1149-gcpUpgrade linux-image-gke-5.15Upgrade linux-image-azure-fdeUpgrade linux-image-bluefieldUpgrade linux-image-azure-cvmUpgrade linux-image-4.4.0-1143-awsUpgrade linux-image-fipsUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-raspi-nolpaeUpgrade linux-image-azure-lts-20.04Upgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-oracleUpgrade linux-image-4.15.0-1135-fipsUpgrade linux-image-awsUpgrade linux-image-ibmUpgrade linux-image-5.4.0-216-genericUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1149-gcp-fipsUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-5.4.0-216-generic-lpaeUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-lts-xenialUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-nvidiaUpgrade linux-image-aws-lts-20.04Upgrade linux-image-aws-hweUpgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-4.15.0-1180-awsUpgrade linux-image-4.15.0-1142-oracleUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-4.15.0-237-genericUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-fipsUpgrade linux-image-genericUpgrade linux-image-6.8.0-1010-gcp | 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