Lucene search

K
ubuntucveUbuntu.comUB:CVE-2024-36962
HistoryJun 03, 2024 - 12:00 a.m.

CVE-2024-36962

2024-06-0300:00:00
ubuntu.com
ubuntu.com
12
linux kernel
resolved vulnerability
net: ks8851
irq handler
rx packets
softirq
start_xmit
spinlock
mutex
skbs

AI Score

6.6

Confidence

High

EPSS

0

Percentile

15.5%

In the Linux kernel, the following vulnerability has been resolved: net:
ks8851: Queue RX packets in IRQ handler instead of disabling BHs Currently
the driver uses local_bh_disable()/local_bh_enable() in its IRQ handler to
avoid triggering net_rx_action() softirq on exit from netif_rx(). The
net_rx_action() could trigger this driver .start_xmit callback, which is
protected by the same lock as the IRQ handler, so calling the .start_xmit
from netif_rx() from the IRQ handler critical section protected by the lock
could lead to an attempt to claim the already claimed lock, and a hang. The
local_bh_disable()/local_bh_enable() approach works only in case the IRQ
handler is protected by a spinlock, but does not work if the IRQ handler is
protected by mutex, i.e. this works for KS8851 with Parallel bus interface,
but not for KS8851 with SPI bus interface. Remove the BH manipulation and
instead of calling netif_rx() inside the IRQ handler code protected by the
lock, queue all the received SKBs in the IRQ handler into a queue first,
and once the IRQ handler exits the critical section protected by the lock,
dequeue all the queued SKBs and push them all into netif_rx(). At this
point, it is safe to trigger the net_rx_action() softirq, since the
netif_rx() call is outside of the lock that protects the IRQ handler.

AI Score

6.6

Confidence

High

EPSS

0

Percentile

15.5%