🇰🇷 한글 설명
Linux 커널의 rxrpc 프로토콜에서 skb_unshare() 호출 실패 시 발생할 수 있는 Use-After-Free(UAF) 취약점이 해결되었습니다. 패킷 할당 실패로 인해 skb 포인터가 NULL로 설정될 경우, trace_rxrpc_rx_done() 호출 과정에서 시스템 오류(oops)가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 데이터를 처리하는 과정에서 메모리 할당에 실패하면 시스템이 잘못된 메모리 주소를 참조하여 컴퓨터가 멈추거나 오류가 발생할 수 있는 문제입니다. 패킷 처리 순서를 조정하여 이러한 메모리 오류가 발생하지 않도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rxrpc: Fix potential UAF after skb_unshare() failure
If skb_unshare() fails to unshare a packet due to allocation failure in
rxrpc_input_packet(), the skb pointer in the parent (rxrpc_io_thread())
will be NULL'd out. This will likely cause the call to
trace_rxrpc_rx_done() to oops.
Fix this by moving the unsharing down to where rxrpc_input_call_event()
calls rxrpc_input_call_packet(). There are a number of places prior to
that where we ignore DATA packets for a variety of reasons (such as the
call already being complete) for which an unshare is then avoided.
And with that, rxrpc_input_packet() doesn't need to take a pointer to the
pointer to the packet, so change that to just a pointer.
📍 영향받는 시스템
Linux kernel (rxrpc 프로토콜을 사용하는 시스템)
⚔️ 공격 벡터
특수하게 조작된 네트워크 패킷을 전송하여 메모리 할당 실패를 유도함으로써 시스템 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 수정된 패치 버전 이후인지 확인