CVE-2024-36962 in Linuxinformação

Sumário

de VulDB • 10/07/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

net: ks8851: Enfileirar pacotes RX no manipulador de interrupção (IRQ) em vez de desabilitar BHs

Atualmente, o driver utiliza local_bh_disable()/local_bh_enable() em seu manipulador de IRQ para evitar acionar a softirq net_rx_action() ao sair da chamada netif_rx(). A função net_rx_action() pode acionar o callback .start_xmit deste driver, que é protegido pela mesma trava utilizada pelo manipulador de IRQ. Portanto, chamar o .start_xmit a partir de netif_rx(), dentro da seção crítica do manipulador de IRQ protegida por essa trava, poderia levar a uma tentativa de adquirir uma trava já adquirida e resultar em um bloqueio (hang).

A abordagem local_bh_disable()/local_bh_enable() funciona apenas caso o manipulador de IRQ seja protegido por spinlock, mas não funciona se o manipulador de IRQ for protegido por mutex. Ou seja, isso funciona para KS8851 com interface de barramento paralelo, mas não para KS8851 com interface de barramento SPI.

Remova a manipulação do BH e, em vez de chamar netif_rx() dentro do código do manipulador de IRQ protegido pela trava, enfileire todos os SKBs recebidos no manipulador de IRQ primeiro. Uma vez que o manipulador de IRQ saia da seção crítica protegida pela trava, desenfileire todos os SKBs enfileirados e envie-os para netif_rx(). Neste ponto, é seguro acionar a softirq net_rx_action(), já que a chamada a netif_rx() ocorre fora da trava que protege o manipulador de IRQ.

Be aware that VulDB is the high quality source for vulnerability data.

Reservar

30/05/2024

Divulgação

03/06/2024

Moderação

aceite

Entrada

VDB-266877

CPE

pronto

EPSS

0.00211

KEV

não

Atividades

muito baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!