Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2024-42110— net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx()

CVSS 7.5 · High EPSS 0.65% · P48

Possible ATT&CK Techniques 1AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 10

VendorProductVersion RangeStatus
LinuxLinux548c237c0a9972df5d1afaca38aa733ee577128d< 4b3b6c7efee69f077b86ef7f088fb96768e46e1faffected
548c237c0a9972df5d1afaca38aa733ee577128d< e3af5b14e7632bf12058533d69055393e2d126c9affected
548c237c0a9972df5d1afaca38aa733ee577128d< 858ae09f03677a4ab907a15516893bc2cc79d4c3affected
548c237c0a9972df5d1afaca38aa733ee577128d< e15a5d821e5192a3769d846079bc9aa380139bafaffected
3.9affected
< 3.9unaffected
6.1.98≤ 6.1.*unaffected
6.6.39≤ 6.6.*unaffected
… +2 more rows
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-42110

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx()
Source: CVE Program / CVE List V5
Vulnerability Description
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().
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于net:ntb_netdev模块中在使用idxd (DSA) dmanegine作为ntb_transport的数据移动器时,idxd驱动程序的中断完成处理程序使用线程化中断,而线程处理程序不是硬中断或软中断,导致异常。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 548c237c0a9972df5d1afaca38aa733ee577128d ~ 4b3b6c7efee69f077b86ef7f088fb96768e46e1f -
LinuxLinux 3.9 -

II. Public POCs for CVE-2024-42110

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-42110

登录查看更多情报信息。

Other References for CVE-2024-42110 (4)

Same Patch Batch · Linux · 2024-07-30 · 70 CVEs total

CVE-2024-421089.8 CRITICALnet: rswitch: Avoid use-after-free in rswitch_poll()
CVE-2024-422258.3 HIGHwifi: mt76: replace skb_put with skb_put_zero
CVE-2024-421207.8 HIGHdrm/amd/display: Check pipe offset before setting vblank
CVE-2024-421177.8 HIGHdrm/amd/display: ASSERT when failing to find index by plane/stream id
CVE-2024-421157.8 HIGHjffs2: Fix potential illegal address access in jffs2_free_inode
CVE-2024-421127.8 HIGHnet: txgbe: free isb resources at the right time
CVE-2024-421117.8 HIGHbtrfs: always do the basic checks for btrfs_qgroup_inherit structure
CVE-2024-421097.8 HIGHnetfilter: nf_tables: unconditionally flush pending work before notifier
CVE-2024-421057.8 HIGHnilfs2: fix inode number range checks
CVE-2024-421047.8 HIGHnilfs2: add missing check for inode numbers on directory entries
CVE-2024-421037.8 HIGHbtrfs: fix adding block group to a reclaim list and the unused list during reclaim
CVE-2024-421627.8 HIGHgve: Account for stopped queues when reading NIC stats
CVE-2024-420997.8 HIGHs390/dasd: Fix invalid dereferencing of indirect CCW data pointer
CVE-2024-421327.6 HIGHbluetooth/hci: disallow setting handle bigger than HCI_CONN_HANDLE_MAX
CVE-2024-421337.6 HIGHBluetooth: Ignore too large handle values in BIG
CVE-2024-421527.5 HIGHnvmet: fix a possible leak when destroy a ctrl during qp establishment
CVE-2024-421457.5 HIGHIB/core: Implement a limit on UMAD receive List
CVE-2024-421237.0 HIGHdrm/amdgpu: fix double free err_addr pointer warnings
CVE-2024-422247.0 HIGHnet: dsa: mv88e6xxx: Correct check for empty list
CVE-2024-42161bpf: Avoid uninitialized value in BPF_CORE_READ_BITFIELD

Showing top 20 of 70 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-42110

No comments yet


Leave a comment