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 kernel-debug-devel-matchedUpgrade kernel-modulesUpgrade kernel-rt-modules-coreUpgrade kernel-rt-modulesUpgrade kernel-modules-extraUpgrade kernel-64k-develUpgrade kernel-rt-debug-develUpgrade kernel-64k-devel-matchedUpgrade kernel-docUpgrade kernel-64k-debug-modules-coreUpgrade kernel-uki-virtUpgrade kernel-64k-modules-extraUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade perfUpgrade kernel-coreUpgrade kernel-abi-stablelistsUpgrade kernel-devel-matchedUpgrade kernel-modules-coreUpgrade kernel-headersUpgrade kernel-debugUpgrade kernel-rt-debug-modules-coreUpgrade kernel-64k-modules-coreUpgrade kernel-debug-develUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-modules-extraUpgrade libperfUpgrade python3-perfUpgrade kernel-rt-debug-modulesUpgrade kernel-64k-debug-modules-extraUpgrade kernel-zfcpdump-develUpgrade rtlaUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-cross-headersUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel-64kUpgrade kernel-64k-coreUpgrade kernel-64k-debugUpgrade rvUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-modules-extraUpgrade kernel-debug-modulesUpgrade kernel-rt-debugUpgrade kernel-debug-modules-coreUpgrade kernel-64k-modulesUpgrade kernel-rt-coreUpgrade kernelUpgrade kernel-64k-debug-develUpgrade kernel-rt-develUpgrade kernel-rtUpgrade bpftoolUpgrade kernel-debug-uki-virtUpgrade kernel-develUpgrade kernel-rt-debug-coreUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debug-coreUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-modules | 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 kernel-rtUpgrade kernel | Dec 5, 2024 | Jul 30, 2024 |
| Suse | — | Upgrade kernel-macrosUpgrade kernel-rtUpgrade dtb-rockchipUpgrade kernel-zfcpdumpUpgrade dtb-amdUpgrade kernel-syms-azureUpgrade reiserfs-kmp-azureUpgrade kernel-symsUpgrade ocfs2-kmp-rtUpgrade gfs2-kmp-64kbUpgrade kernel-docs-htmlUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-vdsoUpgrade dtb-amlogicUpgrade gfs2-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade kselftests-kmp-defaultUpgrade kernel-devel-azureUpgrade dtb-appleUpgrade dtb-mediatekUpgrade kernel-azure-baseUpgrade kernel-64kb-livepatch-develUpgrade kernel-defaultUpgrade dtb-socionextUpgrade dlm-kmp-azureUpgrade dlm-kmp-defaultUpgrade kernel-default-manUpgrade kernel-default-extraUpgrade dtb-nvidiaUpgrade dtb-apmUpgrade kernel-docsUpgrade kernel-azure-develUpgrade kernel-kvmsmallUpgrade kernel-obs-qaUpgrade kernel-azure-extraUpgrade reiserfs-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-syms-rtUpgrade dtb-marvellUpgrade kernel-debug-livepatch-develUpgrade kernel-64kb-optionalUpgrade kernel-rt_debugUpgrade kernel-default-baseUpgrade dtb-armUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt_debug-vdsoUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-rt-livepatchUpgrade kernel-rt-vdsoUpgrade kernel-rt-develUpgrade kernel-sourceUpgrade kernel-default-optionalUpgrade kernel-rt-optionalUpgrade kernel-debug-develUpgrade kernel-azureUpgrade kernel-64kb-develUpgrade dtb-sprdUpgrade dtb-exynosUpgrade cluster-md-kmp-rtUpgrade kernel-debugUpgrade cluster-md-kmp-64kbUpgrade ocfs2-kmp-azureUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-default-vdsoUpgrade kernel-rt_debug-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade dlm-kmp-rtUpgrade dtb-alteraUpgrade dtb-renesasUpgrade dtb-caviumUpgrade kselftests-kmp-azureUpgrade kernel-develUpgrade kernel-64kbUpgrade kernel-devel-rtUpgrade kernel-default-livepatch-develUpgrade kernel-debug-vdsoUpgrade dtb-amazonUpgrade kernel-source-rtUpgrade gfs2-kmp-defaultUpgrade dtb-broadcomUpgrade reiserfs-kmp-defaultUpgrade kernel-rt_debug-develUpgrade kernel-default-develUpgrade kernel-64kb-extraUpgrade kselftests-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-default-base-rebuildUpgrade kernel-azure-optionalUpgrade gfs2-kmp-azureUpgrade dtb-lgUpgrade dtb-allwinnerUpgrade cluster-md-kmp-azureUpgrade dtb-xilinxUpgrade dtb-freescaleUpgrade kernel-default-livepatchUpgrade dtb-qcomUpgrade dtb-hisiliconUpgrade dlm-kmp-64kbUpgrade kernel-source-vanillaUpgrade kernel-source-azure | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-azureUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-ibmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-kvmUpgrade linux-image-6.8.0-48-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1016-azureUpgrade linux-image-ibm-classicUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-awsUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-genericUpgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1016-oemUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1018-awsUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-oracleUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-virtualUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-gcpUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-lowlatency-64k | 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