🇰🇷 한글 설명
리눅스 커널의 bcmgenet 드라이버에서 Tx 큐를 비활성화하기 전에 Tx NAPI를 중지하지 않아 발생하는 Use-After-Free 취약점입니다. 이로 인해 큐가 해제된 후에도 전송 작업이 시도되어 메모리 오류 및 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
네트워크 장치가 잠자기 모드로 들어갈 때, 데이터 전송 통로를 먼저 닫지 않고 나중에 닫아서 발생하는 문제입니다. 이 과정에서 이미 사라진 통로로 데이터를 보내려다 컴퓨터 시스템이 충돌할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: bcmgenet: stop Tx NAPI before disabling the queues
bcmgenet_netif_stop() and the Wake-on-LAN branch of bcmgenet_suspend()
both disable the Tx queues first and stop Tx NAPI several steps later. A
completion in flight calls netif_tx_wake_queue() in between, and nothing
stops the queue again, so a transmit can reach the rings after they have
been freed.
Close is safe because dev_deactivate_many() stops the qdisc first.
bcmgenet_suspend() does not, so stop Tx NAPI before the queues on both
paths.
KASAN on a Raspberry Pi CM4, driven from an MTU change because suspend
freezes user space before the callback runs:
BUG: KASAN: use-after-free in bcmgenet_xmit+0x17f8/0x2258
Write of size 8 at addr ffffff8055844a68 by task ksoftirqd/0/14
bcmgenet_xmit+0x17f8/0x2258
dev_hard_start_xmit+0x13c/0x588
sch_direct_xmit+0x108/0x340
__dev_queue_xmit+0x1190/0x3848
📍 영향받는 시스템
bcmgenet 드라이버를 사용하는 리눅스 커널 (특히 Raspberry Pi CM4 등)
⚔️ 공격 벡터
로컬 시스템에서 네트워크 설정 변경(MTU 변경 등) 또는 시스템 절전 모드 진입을 유도하여 발생
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 보안 업데이트 버전인지 확인