🇰🇷 한글 설명
Linux 커널의 igc 드라이버에서 AF_XDP 제로 카피 애플리케이션이 갑자기 종료될 경우, NAPI 폴링 상태가 해제되지 않아 발생하는 문제입니다. 이로 인해 igc_down() 함수가 무한 루프에 빠져 네트워크 인터페이스가 정상적으로 다운되지 않는 현상이 발생합니다.
💡 쉬운 설명
특정 네트워크 프로그램을 갑자기 강제로 종료하면, 컴퓨터의 네트워크 장치가 꺼지지 않고 계속 멈춰있는 상태가 될 수 있습니다. 이는 네트워크 장치를 관리하는 소프트웨어의 처리 순서 오류로 인해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
igc: remove napi_synchronize() in igc_down()
When an AF_XDP zero-copy application is killed abruptly, the XSK pool is
torn down but NAPI keeps polling. igc_clean_rx_irq_zc() then returns the
full budget on every poll, so napi_complete_done() never clears
NAPI_STATE_SCHED.
igc_down() calls napi_synchronize() before napi_disable(), so it spins
forever waiting for that bit and the interface never goes down. Drop the
napi_synchronize() and let napi_disable() do the job -- it sets
NAPI_STATE_DISABLE, which forces the stuck poll to complete. Reorder it
ahead of igc_set_queue_napi() so the NAPI mapping is cleared only after
polling has stopped, matching the recent igb fix b1e067240379.
📍 영향받는 시스템
Linux kernel (igc driver 사용 시스템)
⚔️ 공격 벡터
AF_XDP zero-copy를 사용하는 애플리케이션을 비정상적으로 종료시켜 네트워크 인터페이스의 가용성을 저해 (DoS)
🛡️ 대응 방법
igc 드라이버의 napi_synchronize() 호출을 제거하고 napi_disable()을 적절히 호출하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.