🇰🇷 한글 설명
리눅스 커널의 ipmr 모듈에서 멀티캐스트 테이블 및 라우트 메모리 할당 시 메모리 계정이 제대로 이루어지지 않는 취약점입니다. 사용자 네임스페이스 내의 netadmin이 다수의 멀티캐스트 라우팅 테이블을 생성할 경우, 호스트의 메모리 회수가 불가능한 슬랩(slab) 영역이 계속 증가하여 메모리 고갈을 유발할 수 있습니다.
💡 쉬운 설명
사용자가 가짜 네트워크 공간을 만들어 계속해서 메모리를 사용하도록 요청하면, 컴퓨터의 메모리가 해제되지 않고 계속 쌓여 시스템이 느려지거나 멈출 수 있습니다. 이를 방지하기 위해 사용자가 사용하는 메모리 양을 정확히 계산하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipmr: account multicast table and route memory
A netadmin in a user+net namespace can create many IPv4 and IPv6
multicast routing tables with MRT_TABLE and MRT6_TABLE. Each unseen
id allocates an mr_table via the shared mr_table_alloc(), links it
into the per-net list, and leaves it until netns teardown. Those
objects were not charged to memcg, so the host unreclaimable slab
grows with the table count.
Account mr_table allocations with GFP_KERNEL_ACCOUNT and mark the
IPv4/IPv6 MFC caches SLAB_ACCOUNT. This matches the established
handling of IP addresses, routes and alternate interface names.
Unresolved MFC entries are still allocated from softIRQ with
GFP_ATOMIC and are not charged. They expire after 10 seconds and are
bounded by the socket receive queue; see commit 0079ad8e8dc3
("ipmr: remove hard code cache_resolve_queue_len limit").
📍 영향받는 시스템
Linux kernel (ipmr module 관련 버전)
⚔️ 공격 벡터
사용자 네임스페이스 권한을 가진 공격자가 다수의 IPv4/IPv6 멀티캐스트 라우팅 테이블을 생성하여 메모리 점유
🛡️ 대응 방법
ipmr 메모리 할당에 GFP_KERNEL_ACCOUNT를 적용하고 MFC 캐시에 SLAB_ACCOUNT를 설정한 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.