CVE-2024-36962 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 11.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net: ks8851: BH(Bottom Half) 비활성화 대신 인터럽트 핸들러 내에서 RX 패킷을 큐에 추가합니다.

현재 이 드라이버는 `netif_rx()` 종료 시 `net_rx_action()` softirq가 트리거되는 것을 방지하기 위해 IRQ 핸들러에서 `local_bh_disable()/local_bh_enable()`를 사용합니다. `net_rx_action()`은 이 드라이버의 `.start_xmit` 콜백을 트리거할 수 있는데, 이는 IRQ 핸들러와 동일한 락으로 보호되고 있습니다. 따라서 잠금(lock)으로 보호되는 IRQ 핸들러의 임계 섹션 내에서 `netif_rx()`에서 `.start_xmit`를 호출하면 이미 획득된 락을 다시 확보하려고 시도하여 시스템이 멈출(hang) 수 있습니다.

`local_bh_disable()/local_bh_enable()` 접근 방식은 IRQ 핸들러가 스핀락(spinlock)으로 보호되는 경우에만 작동하지만, mutex로 보호될 때는 작동하지 않습니다. 즉, 이 방법은 병렬 버스 인터페이스를 사용하는 KS8851에서는 동작하지만 SPI 버스 인터페이스를 사용하는 KS8851에서는 동작하지 않습니다.

BH 조작을 제거하고, 잠금으로 보호되는 IRQ 핸들러 코드 내부에서 `netif_rx()`를 호출하는 대신, 수신된 모든 SKB(스케줄 가능 버퍼)를 먼저 IRQ 핸들러 내의 큐에 추가합니다. 그런 다음 IRQ 핸들러가 잠금으로 보호되는 임계 섹션을 벗어나면 큐에 있는 모든 SKB를 꺼내어 `netif_rx()`로 전달합니다. 이 시점에서는 `netif_rx()` 호출이 IRQ 핸들러를 보호하는 락 외부에서 이루어지므로, `net_rx_action()` softirq를 트리거해도 안전합니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!