🇰🇷 한글 설명
Linux 커널의 rtl8150 네트워크 드라이버에서 multicast 설정 시 전송 큐를 잘못 깨우는 동기화 오류가 발견되었습니다. 이로 인해 USB URB가 완료되기 전에 전송 큐가 재개되어 데이터 전송이 중복되는 문제가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 카드가 데이터를 보내는 과정에서 순서가 꼬여서 같은 데이터를 두 번 보내거나 충돌이 일어날 수 있는 버그입니다. 이로 인해 네트워크 연결이 불안정해지거나 시스템에 경고가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: usb: Remove disruptive netif_wake_queue in rtl8150_set_multicast
syzbot reported WARNING in rtl8150_start_xmit/usb_submit_urb.
This is the sequence of events that leads to the warning:
rtl8150_start_xmit() {
netif_stop_queue();
usb_submit_urb(dev->tx_urb);
}
rtl8150_set_multicast() {
netif_stop_queue();
netif_wake_queue(); <-- wakes up TX queue before URB is done
}
rtl8150_start_xmit() {
netif_stop_queue();
usb_submit_urb(dev->tx_urb); <-- double submission
}
rtl8150_set_multicast being the ndo_set_rx_mode callback should not be
calling netif_stop_queue and notif_start_queue as these handle
TX queue synchronization.
The net core function dev_set_rx_mode handles the synchronization
for rtl8150_set_multicast making it safe to remove these locks.
📍 영향받는 시스템
Linux kernel (rtl8150 driver 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 네트워크 설정을 변경하여 커널 경고(WARNING)를 유발하거나 시스템 불안정성을 초래할 수 있음
🛡️ 대응 방법
rtl8150 드라이버의 netif_wake_queue 호출이 수정된 최신 Linux 커널로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인하십시오.