CVE-2024-41036CWE-667

CVE-2024-41036

High · published July 29, 2024

CVSS v3.1
7.5
EPSS
1%
Percentile
54.5
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: ks8851: Fix deadlock with the SPI chip variant

When SMP is enabled and spinlocks are actually functional then there is

a deadlock with the 'statelock' spinlock between ks8851_start_xmit_spi

and ks8851_irq:

watchdog: BUG: soft lockup - CPU#0 stuck for 27s!

call trace:

queued_spin_lock_slowpath+0x100/0x284

do_raw_spin_lock+0x34/0x44

ks8851_start_xmit_spi+0x30/0xb8

ks8851_start_xmit+0x14/0x20

netdev_start_xmit+0x40/0x6c

dev_hard_start_xmit+0x6c/0xbc

sch_direct_xmit+0xa4/0x22c

__qdisc_run+0x138/0x3fc

qdisc_run+0x24/0x3c

net_tx_action+0xf8/0x130

handle_softirqs+0x1ac/0x1f0

__do_softirq+0x14/0x20

____do_softirq+0x10/0x1c

call_on_irq_stack+0x3c/0x58

do_softirq_own_stack+0x1c/0x28

__irq_exit_rcu+0x54/0x9c

irq_exit_rcu+0x10/0x1c

el1_interrupt+0x38/0x50

el1h_64_irq_handler+0x18/0x24

el1h_64_irq+0x64/0x68

__netif_schedule+0x6c/0x80

netif_tx_wake_queue+0x38/0x48

ks8851_irq+0xb8/0x2c8

irq_thread_fn+0x2c/0x74

irq_thread+0x10c/0x1b0

kthread+0xc8/0xd8

ret_from_fork+0x10/0x20

This issue has not been identified earlier because tests were done on

a device with SMP disabled and so spinlocks were actually NOPs.

Now use spin_(un)lock_bh for TX queue related locking to avoid execution

of softirq work synchronously that would lead to a deadlock.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00751 · 54.5th percentile
Weakness
CWE-667 · Improper Locking
Published
2024-07-29T19:15Z
Affected products (10)
ProductVersionsFixed in
linux/linux_kernel≥ 6.1.70, < 6.1.1006.1.100
linux/linux_kernel≥ 6.6.9, < 6.6.416.6.41
linux/linux_kernel≥ 6.7, < 6.9.106.9.10
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 29 JUL 14:31Z
    net: ks8851: Fix deadlock with the SPI chip variant
    cvelistv5