🇰🇷 한글 설명
Linux 커널의 vmxnet3 드라이버에서 Geneve 캡슐화된 패킷 처리 시 발생하는 오류입니다. vmxnet3_get_hdr_len() 함수가 외부 헤더와 내부 헤더를 혼동하여 잘못된 프로토콜을 참조할 경우 BUG_ON 조건이 트리거되어 시스템이 중단될 수 있습니다.
💡 쉬운 설명
네트워크 데이터 패킷을 처리할 때 데이터의 겉면과 안쪽을 구분하지 못해 발생하는 오류입니다. 특수한 형태의 네트워크 패킷이 들어오면 컴퓨터 시스템이 갑자기 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vmxnet3: fix BUG_ON in vmxnet3_get_hdr_len() for Geneve packets
vmxnet3_get_hdr_len() assumes gdesc->rcd.v4/v6/tcp always describe the
outer header, but for a Geneve-encapsulated packet the device can set
them based on the inner header instead, signalled by the
VMXNET3_RCD_HDR_INNER_SHIFT bit in the completion descriptor. Since the
function never skips the outer encapsulation, this mismatch triggers:
- BUG_ON(hdr.ipv4->protocol != IPPROTO_TCP), because the outer
protocol is UDP (Geneve), not TCP.
- BUG_ON(hdr.eth->h_proto != ...), when the tunnel's outer and inner
IP versions differ (e.g. outer IPv6/inner IPv4 or vice versa).
Check VMXNET3_RCD_HDR_INNER_SHIFT up front and bail out, since the
function cannot locate the inner header it would need to parse. Also
convert the remaining BUG_ON()s in this function to return 0
defensively.
📍 영향받는 시스템
Linux kernel (vmxnet3 driver using Geneve encapsulation)
⚔️ 공격 벡터
Geneve 캡슐화된 특수 네트워크 패킷을 전송하여 커널의 BUG_ON을 유발하고 시스템을 중단시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux