🇰🇷 한글 설명
Linux 커널의 AF_XDP 소켓(xsk) 유저메모리 영역(UMEM) 헤드룸 검증에서 이더넷 프레임을 수신할 최소 공간을 보장하지 못하는 취약점입니다. 멀티버퍼 사용 시 프레임 끝에 저장되는 skb_shared_info 구조가 손상될 수 있으며, 128바이트 정렬 최소값과 테일룸 공간을 미리 고려하지 않는 문제가 있습니다.
💡 쉬운 설명
Linux 시스템에서 고성능 네트워크 처리(AF_XDP)를 위한 메모리 영역을 설정할 때, 필요한 최소 공간을 올바르게 검증하지 않는 문제입니다. 이로 인해 네트워크 데이터가 손상되거나 시스템이 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
xsk: tighten UMEM headroom validation to account for tailroom and min frame
The current headroom validation in xdp_umem_reg() could leave us with
insufficient space dedicated to even receive minimum-sized ethernet
frame. Furthermore if multi-buffer would come to play then
skb_shared_info stored at the end of XSK frame would be corrupted.
HW typically works with 128-aligned sizes so let us provide this value
as bare minimum.
Multi-buffer setting is known later in the configuration process so
besides accounting for 128 bytes, let us also take care of tailroom space
upfront.
📍 영향받는 시스템
Linux kernel (AF_XDP 소켓 지원하는 모든 버전, 특히 5.4 이상)
⚔️ 공격 벡터
로컬 공격 - root 또는 CAP_NET_ADMIN 권한이 있는 사용자가 AF_XDP 소켓을 잘못 구성하여 메모리 손상 유발
🛡️ 대응 방법
Linux kernel 패치 적용 (xdp_umem_reg() 함수의 UMEM 헤드룸 검증 로직 수정)
🔧 검증 코드
커널 버전이 5.4 이상이고 AF_XDP 소켓(CONFIG_XDP_SOCKETS)이 활성화되어 있으면 해당 시스템이 영향을 받을 수 있습니다.
uname -r | grep -E '(5\.[4-9]|[6-9]\.)' && cat /proc/config.gz | gunzip | grep CONFIG_XDP_SOCKETS