🇰🇷 한글 설명
Linux kernel netfilter ipset의 mtype_del() 함수에서 빈 버킷을 제대로 해제하지 않는 메모리 누수 취약점. n->pos가 0이 아닌 경우 삭제된 항목들로 구성된 버킷이 메모리에 남아있어 리소스 낭비 발생.
💡 쉬운 설명
Linux 커널의 네트워크 규칙 관리 시스템이 사용한 메모리를 제대로 반환하지 않는 버그. 반복된 규칙 추가/삭제를 통해 메모리가 점점 낭비되어 시스템 성능 저하 가능.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ipset: drop logically empty buckets in mtype_del
mtype_del() counts empty slots below n->pos in k, but it only drops the
bucket when both n->pos and k are zero. This misses buckets whose live
entries have all been removed while n->pos still points past deleted slots.
Treat a bucket as empty when all positions below n->pos are unused and
release it directly instead of shrinking it further.
📍 영향받는 시스템
Linux kernel ipset 모듈 (2.6.30 이상 일부 버전)
⚔️ 공격 벡터
로컬 공격자가 iptables/ipset 명령어로 IP set 규칙을 반복해서 추가/삭제하여 메모리 누수 유발
🛡️ 대응 방법
Linux kernel 패치 적용 (mtype_del() 함수 수정 포함된 버전으로 업그레이드)
🔧 검증 코드
커널 버전을 확인하고 해당 버전에 mtype_del 함수 패치가 포함되었는지 확인. 정보 없으면 커널 소스 코드에서 함수 수정 여부 직접 검증 필요.
uname -r && grep -i 'mtype_del' /boot/config-$(uname -r) 2>/dev/null || grep -r 'mtype_del' /lib/modules/$(uname -r)/kernel/net/netfilter/ 2>/dev/null | head -1