🇰🇷 한글 설명
Linux 커널의 mvpp2 네트워크 드라이버에서 XDP 프레임 크기가 실제 RX 버퍼 크기보다 크게 설정되는 취약점이 발견되었습니다. 이로 인해 bpf_xdp_adjust_tail() 함수가 실제 할당된 메모리 범위를 초과하여 패킷 크기를 늘릴 수 있으며, 이는 메모리 오염이나 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
네트워크 데이터를 처리하는 과정에서 실제 저장 공간보다 더 큰 데이터를 넣으려고 시도하여 메모리가 망가질 수 있는 문제입니다. 이로 인해 시스템이 멈추거나 해커가 악의적인 코드를 실행할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mvpp2: limit XDP frame size to the RX buffer
mvpp2 has short and long BM pools, and short pool buffers can be smaller
than PAGE_SIZE. The XDP path nevertheless initializes every xdp_buff with
PAGE_SIZE as frame size.
XDP helpers use frame_sz to validate tail growth and to derive the hard
end of the data area. Advertising PAGE_SIZE for short buffers can let
bpf_xdp_adjust_tail() grow a packet past the real allocation, corrupting
memory or later tripping skb tailroom checks.
Initialize the XDP buffer with bm_pool->frag_size so XDP tailroom matches
the actual buffer backing the packet.
📍 영향받는 시스템
mvpp2 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 XDP 패킷을 전송하여 메모리 경계를 초과하는 데이터 확장을 유도하는 방식
🛡️ 대응 방법
mvpp2 드라이버의 XDP 버퍼 초기화 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.