CVE-2026-46031 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 27.

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

net: ks8851: IRQ 핸들러 주변에서 BH(Bottom Halves) 비활성화 조치 재적용

드라이버가 ks8851_irq()를 실행하고 TX 패킷이 전송된 경우, 드라이버는 netif_wake_queue()를 통해 TX 큐를 활성화하여 이 장치에 대한 패킷 큐잉을 위한 TX softirq를 스케줄링합니다.

CONFIG_PREEMPT_RT=y가 설정되어 있고 MAC에서 패킷도 수신된 경우, ks8851_rx_pkts()는 수신된 패킷에 대한 SKB를 할당하기 위해 netdev_alloc_skb_ip_align()을 호출합니다. BH가 활성화된 상태에서 netdev_alloc_skb_ip_align()이 호출되면, netdev_alloc_skb_ip_align() 끝부분의 local_bh_enable()이 보류 중인 softirq 처리를 트리거할 수 있으며, 이는 궁극적으로 .xmit 콜백인 ks8851_start_xmit_par()를 호출할 수 있습니다. ks8851_start_xmit_par()는 ks8851_irq()에서 이미 잠겨 있는 struct ks8851_net_par.lock 스핀락을 잠그려고 시도합니다. 이는 데드락을 초래하며, 아래에 나열된 트레이스를 포함하여 커널에 의해 보고됩니다.

CONFIG_PREEMPT_RT가 설정되지 않은 경우, 커밋 0913ec336a6c0("net: ks8851: SPI 칩 변형과의 데드락 수정") 이후로 RX FIFO에 수신된 패킷이 없어도 데드락을 트리거할 수 있습니다. 보류 중인 softirq들은 ks8851_irq() 내의 spin_unlock_bh(&ks->statelock)에서 복귀할 때 처리되며, 이 역시 데드락을 트리거합니다.

이 문제를 해결하기 위해 IRQ 핸들러를 포함한 중요 섹션(critical sections) 주변에서 BH를 비활성화하여, 이러한 중요 섹션 동안 net_tx_action() softirq가 트리거되는 것을 방지합니다. net_tx_action() softirq는 BH가 다시 활성화될 때, 그리고 모든 다른 IRQ 핸들러 작업이 완료된 후 IRQ 핸들러 끝부분에서 트리거됩니다.

__schedule from schedule_rtlock+0x1c/0x34 schedule_rtlock from rtlock_slowlock_locked+0x548/0x904 rtlock_slowlock_locked from rt_spin_lock+0x60/0x9c rt_spin_lock from ks8851_start_xmit_par+0x74/0x1a8 ks8851_start_xmit_par from netdev_start_xmit+0x20/0x44 netdev_start_xmit from dev_hard_start_xmit+0xd0/0x188 dev_hard_start_xmit from sch_direct_xmit+0xb8/0x25c sch_direct_xmit from __qdisc_run+0x1f8/0x4ec __qdisc_run from qdisc_run+0x1c/0x28 qdisc_run from net_tx_action+0x1f0/0x268 net_tx_action from handle_softirqs+0x1a4/0x270 handle_softirqs from __local_bh_enable_ip+0xcc/0xe0 __local_bh_enable_ip from __alloc_skb+0xd8/0x128 __alloc_skb from __netdev_alloc_skb+0x3c/0x19c __netdev_alloc_skb from ks8851_irq+0x388/0x4d4 ks8851_irq from irq_thread_fn+0x24/0x64 irq_thread_fn from irq_thread+0x178/0x28c irq_thread from kthread+0x12c/0x138 kthread from ret_from_fork+0x14/0x28

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

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!