In the Linux kernel, the following vulnerability has been resolved:
net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx()
The following is emitted when using idxd (DSA) dmanegine as the data mover for ntb_transport that ntb_netdev uses.
[74412.546922] BUG: using smp_processor_id() in preemptible [00000000] code: irq/52-idxd-por/14526 [74412.556784] caller is netif_rx_internal+0x42/0x130 [74412.562282] CPU: 6 PID: 14526 Comm: irq/52-idxd-por Not tainted 6.9.5 #5 [74412.569870] Hardware name: Intel Corporation ArcherCity/ArcherCity, BIOS EGSDCRB1.E9I.1752.P05.2402080856 02/08/2024 [74412.581699] Call Trace: [74412.584514] <TASK> [74412.586933] dump_stack_lvl+0x55/0x70 [74412.591129] check_preemption_disabled+0xc8/0xf0 [74412.596374] netif_rx_internal+0x42/0x130 [74412.600957] __netif_rx+0x20/0xd0 [74412.604743] ntb_netdev_rx_handler+0x66/0x150 [ntb_netdev] [74412.610985] ntb_complete_rxc+0xed/0x140 [ntb_transport] [74412.617010] ntb_rx_copy_callback+0x53/0x80 [ntb_transport] [74412.623332] idxd_dma_complete_txd+0xe3/0x160 [idxd] [74412.628963] idxd_wq_thread+0x1a6/0x2b0 [idxd] [74412.634046] irq_thread_fn+0x21/0x60 [74412.638134] ? irq_thread+0xa8/0x290 [74412.642218] irq_thread+0x1a0/0x290 [74412.646212] ? __pfx_irq_thread_fn+0x10/0x10 [74412.651071] ? __pfx_irq_thread_dtor+0x10/0x10 [74412.656117] ? __pfx_irq_thread+0x10/0x10 [74412.660686] kthread+0x100/0x130 [74412.664384] ? __pfx_kthread+0x10/0x10 [74412.668639] ret_from_fork+0x31/0x50 [74412.672716] ? __pfx_kthread+0x10/0x10 [74412.676978] ret_from_fork_asm+0x1a/0x30 [74412.681457] </TASK>
The cause is due to the idxd driver interrupt completion handler uses threaded interrupt and the threaded handler is not hard or soft interrupt context. However __netif_rx() can only be called from interrupt context. Change the call to netif_rx() in order to allow completion via normal context for dmaengine drivers that utilize threaded irq handling.
While the following commit changed from netif_rx() to __netif_rx(), baebdf48c360 ("net: dev: Makes sure netif_rx() can be invoked in any context."), the change should've been a noop instead. However, the code precedes this fix should've been using netif_rx_ni() or netif_rx_any_context().
CVSS Details
- CVSS 3.1 Base Score: 7.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade bpftoolUpgrade kernel-debug-modules-extraUpgrade kernel-64k-modulesUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-modules-coreUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-64k-debugUpgrade kernel-rt-debugUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-cross-headersUpgrade kernel-64k-debug-coreUpgrade kernel-tools-libs-develUpgrade kernel-debug-uki-virtUpgrade kernel-rt-coreUpgrade kernel-develUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libsUpgrade kernel-64k-coreUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-debug-modulesUpgrade kernel-64kUpgrade kernel-toolsUpgrade rvUpgrade kernel-rtUpgrade kernel-64k-debug-develUpgrade kernel-rt-develUpgrade kernelUpgrade kernel-rt-modulesUpgrade perfUpgrade kernel-debug-devel-matchedUpgrade kernel-debug-coreUpgrade kernel-debug-develUpgrade libperfUpgrade kernel-rt-debug-modules-extraUpgrade kernel-modules-coreUpgrade kernel-debugUpgrade kernel-docUpgrade kernel-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-modules-coreUpgrade rtlaUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-abi-stablelistsUpgrade kernel-64k-debug-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-modules-coreUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-develUpgrade kernel-uki-virtUpgrade kernel-64k-develUpgrade kernel-64k-modules-extraUpgrade kernel-64k-debug-modules-coreUpgrade python3-perfUpgrade kernel-coreUpgrade kernel-64k-modules-coreUpgrade kernel-rt-debug-develUpgrade kernel-64k-devel-matchedUpgrade kernel-modulesUpgrade kernel-headers | Nov 4, 2024 | Jul 30, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Aug 7, 2024 | Jul 30, 2024 |
| Oracle_linux | — | Upgrade kernel | Oct 16, 2024 | Jul 30, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Dec 5, 2024 | Jul 30, 2024 |
| Suse | — | Upgrade dtb-sprdUpgrade dtb-amazonUpgrade dtb-xilinxUpgrade kernel-64kb-develUpgrade gfs2-kmp-defaultUpgrade kernel-debug-vdsoUpgrade kernel-azure-optionalUpgrade kernel-default-livepatch-develUpgrade dtb-allwinnerUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-azureUpgrade kernel-devel-rtUpgrade kernel-azureUpgrade kernel-debug-develUpgrade kernel-rt-develUpgrade reiserfs-kmp-64kbUpgrade kernel-source-rtUpgrade kernel-obs-buildUpgrade ocfs2-kmp-azureUpgrade kernel-default-vdsoUpgrade cluster-md-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade dtb-broadcomUpgrade kernel-debugUpgrade kernel-default-develUpgrade ocfs2-kmp-64kbUpgrade dlm-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-rt_debug-livepatch-develUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-develUpgrade dtb-alteraUpgrade dtb-renesasUpgrade dlm-kmp-rtUpgrade dtb-caviumUpgrade kernel-source-vanillaUpgrade ocfs2-kmp-defaultUpgrade dtb-qcomUpgrade kernel-64kbUpgrade kernel-default-livepatchUpgrade kernel-default-optionalUpgrade dtb-hisiliconUpgrade kernel-sourceUpgrade kernel-rt-extraUpgrade kernel-source-azureUpgrade kernel-develUpgrade kselftests-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-rtUpgrade dtb-exynosUpgrade dtb-lgUpgrade dtb-freescaleUpgrade kernel-default-base-rebuildUpgrade dlm-kmp-azureUpgrade kernel-symsUpgrade kernel-azure-extraUpgrade dtb-rockchipUpgrade kernel-obs-qaUpgrade reiserfs-kmp-rtUpgrade dtb-nvidiaUpgrade kernel-debug-livepatch-develUpgrade kernel-default-baseUpgrade dlm-kmp-defaultUpgrade kernel-default-manUpgrade kernel-64kb-optionalUpgrade dtb-marvellUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-develUpgrade kernel-defaultUpgrade dtb-apmUpgrade kernel-azure-develUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-kvmsmallUpgrade kselftests-kmp-rtUpgrade kernel-64kb-livepatch-develUpgrade kernel-devel-azureUpgrade dtb-amlogicUpgrade dtb-amdUpgrade kernel-azure-livepatch-develUpgrade dtb-mediatekUpgrade kselftests-kmp-defaultUpgrade dtb-appleUpgrade kernel-azure-baseUpgrade kernel-syms-azureUpgrade kernel-default-extraUpgrade kernel-docsUpgrade gfs2-kmp-rtUpgrade kernel-azure-vdsoUpgrade gfs2-kmp-64kbUpgrade dtb-socionextUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kernel-rt-livepatch-develUpgrade kernel-rtUpgrade kernel-macrosUpgrade dtb-armUpgrade kernel-syms-rtUpgrade kernel-zfcpdumpUpgrade kernel-rt_debug | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-6.8.0-48-genericUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-nvidia-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1016-azureUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-kvmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-lowlatencyUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-raspiUpgrade linux-image-azureUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-awsUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-virtualUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-gkeUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-gkeopUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-6.8.0-1016-oemUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-generic-64kUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic | Nov 4, 2024 | Jul 30, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 9, 2025 | Jul 30, 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