🇰🇷 한글 설명
Linux 커널의 sfc 드라이버에서 netpoll 호출 시 xdp_do_flush()를 잘못 호출하여 발생하는 크래시 취약점입니다. netpoll 상황에서 budget이 0일 때 bpf_net_context가 할당되지 않은 상태로 함수가 실행되어 시스템 충돌을 유발합니다.
💡 쉬운 설명
네트워크 통신 중 특정 상황에서 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 데이터 처리 과정에서 필요한 정보가 준비되지 않은 상태로 명령을 내려 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sfc: Don't invoke xdp_do_flush() from netpoll.
Yury reported a crash in the sfc driver originated from
netpoll_send_udp(). The netconsole sends a message and then netpoll
invokes the driver's NAPI function with a budget of zero. It is
dedicated to allow driver to free TX resources, that it may have used
while sending the packet.
In the netpoll case the driver invokes xdp_do_flush() unconditionally,
leading to crash because bpf_net_context was never assigned.
Invoke xdp_do_flush() only if budget is not zero.
📍 영향받는 시스템
sfc 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
특정 네트워크 패킷 전송 조건(netpoll/netconsole 사용 시)을 유도하여 시스템 크래시 유발
🛡️ 대응 방법
sfc 드라이버의 xdp_do_flush() 호출 조건을 budget이 0이 아닐 때로 제한하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.