🇰🇷 한글 설명
Linux kernel의 netfilter nft_payload 모듈에서 skb_checksum() 호출 전 offset과 length 값을 검증하지 않아, 버퍼 범위를 초과하는 메모리 접근 시 커널 BUG_ON()이 트리거되는 취약점입니다. 로컬 공격자가 특별한 권한 없이 악의적인 패킷을 구성하여 시스템을 denial of service 상태로 만들 수 있습니다.
💡 쉬운 설명
Linux 방화벽 시스템이 메모리 범위를 올바르게 검증하지 않아서 비정상적인 데이터 처리 요청으로 충돌할 수 있습니다. 누구나 특정 방식의 네트워크 패킷을 보내면 시스템이 죽을 수 있다는 뜻입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_payload: sanitize offset and length before calling skb_checksum()
If access to offset + length is larger than the skbuff length, then
skb_checksum() triggers BUG_ON().
skb_checksum() internally subtracts the length parameter while iterating
over skbuff, BUG_ON(len) at the end of it checks that the expected
length to be included in the checksum calculation is fully consumed.
📍 영향받는 시스템
Linux kernel 5.10 이상 (netfilter가 활성화된 모든 배포판: Ubuntu, Debian, RHEL, CentOS 등)
⚔️ 공격 벡터
로컬 또는 원격에서 nftables 규칙을 통해 비정상적인 offset/length 파라미터를 전송하여 메모리 범위 초과 접근 유발
🛡️ 대응 방법
Linux kernel을 최신 버전으로 업데이트하여 offset/length 검증 로직이 포함된 패치 적용
🔧 검증 코드
출력된 kernel 버전이 취약한 버전 범위(5.10~특정 패치 전 버전)에 해당하면 업데이트 필요, 최신 버전이면 패치 적용된 상태
uname -r | grep -oE '[0-9]+\.[0-9]+' | head -1