🇰🇷 한글 설명
Linux 커널의 um: vector 모듈 내 vector_mmsg_rx() 함수에서 Use-After-Free 취약점이 발견되었습니다. 헤더 검증 실패 시 skb를 해제한 후 포인터를 갱신하지 않고 루프를 계속 진행하여, 동일한 메모리 주소에 대해 중복 해제가 발생할 수 있습니다. 이로 인해 참조 횟수 언더플로우 및 시스템 불안정성이 초래될 수 있습니다.
💡 쉬운 설명
네트워크 패킷을 처리하는 과정에서 이미 삭제된 메모리 정보를 다시 사용하려고 시도하는 오류입니다. 공격자가 특수하게 조작된 패킷을 보내면 시스템의 제어권을 뺏거나 시스템을 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
um: vector: fix use-after-free in vector_mmsg_rx()
When vector_mmsg_rx() discards a packet whose overlay header fails
verify_header(), it frees the skb and continues the loop:
if (header_check < 0) {
dev_kfree_skb_irq(skb);
vp->estats.rx_encaps_errors++;
continue;
}
The normal and short-packet paths fall through to the bottom of the
loop body, which clears the consumed slot and advances the cursors:
(*skbuff_vector) = NULL;
mmsg_vector++;
skbuff_vector++;
The verify_header() < 0 path skips that via continue, so the freed skb
is left in skbuff_vector[] and the cursors do not advance. The next
iteration reads the same slot, gets the freed skb, and frees it again,
producing a refcount underflow / use-after-free in the RX path.
Discard the slot the same way the other paths do before continuing.
Only transports whose verify_header() can return negative are affected:
GRE and L2TPv3 do so on a cookie/session-id mismatch (raw/tap do not),
so any peer on such a transport can trigger it without authentication.
📍 영향받는 시스템
GRE 또는 L2TPv3 전송 프로토콜을 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
인증되지 않은 외부 피어(Peer)가 조작된 헤더(Cookie/Session-ID 불일치)를 가진 패킷을 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.