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