🇰🇷 한글 설명
Linux 커널 netfilter ipset 모듈의 bitmap_ip_create() 함수에서, first_ip가 0이고 last_ip가 0xFFFFFFFF이며 netmask가 31일 때 2 << (netmask - mask_bits - 1) 연산이 피연산자를 먼저 더 큰 자료형으로 변환하지 않아 정수 오버플로가 발생합니다. 다만 이후 단계에서 값을 검사하므로 실제 피해는 없습니다.
💡 쉬운 설명
리눅스 방화벽의 IP 집합 기능에서 숫자 계산 중 범위를 넘는 문제가 있습니다. 다음 단계에서 검사하기 때문에 실제로 악용되거나 시스템이 멈추는 일은 거의 없습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function.
When first_ip is 0, last_ip is 0xFFFFFFFF, and netmask is 31, the value of
an arithmetic expression 2 << (netmask - mask_bits - 1) is subject
to overflow due to a failure casting operands to a larger data type
before performing the arithmetic.
Note that it's harmless since the value will be checked at the next step.
Found by InfoTeCS on behalf of Linux Verification Center
(linuxtesting.org) with SVACE.
📍 영향받는 시스템
Linux 커널의 netfilter ipset(bitmap:ip 타입) 기능을 포함하는 수정 이전 커널 버전
⚔️ 공격 벡터
로컬 또는 권한 있는 사용자가 특정 netmask와 IP 범위로 ipset을 생성하는 방식이며, 실질적인 악용 가능성은 낮습니다.
🛡️ 대응 방법
배포판에서 제공하는 보안 업데이트를 적용하여 커널을 최신 버전으로 업그레이드하세요.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지의 수정 버전과 비교하여 패치 여부를 확인하며, 패키지 정보가 없으면 설치된 커널 버전만 확인하면 됩니다.
uname -r && (dpkg -l linux-image-$(uname -r) 2>/dev/null || rpm -q kernel 2>/dev/null) | head -n 5