🇰🇷 한글 설명
Linux 커널의 nf_tables 구성 요소 중 nft_dynset에서 오류 발생 시 메모리 누수가 발생하는 취약점입니다. 두 번째 상태 저장 표현식을 복제하는 과정에서 메모리 할당(GFP_ATOMIC)이 실패할 경우, 첫 번째 표현식이 해제되지 않고 메모리에 남게 됩니다.
💡 쉬운 설명
시스템이 작업을 처리하다가 오류가 났을 때, 사용하던 메모리를 제대로 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이 문제가 반복되면 시스템의 메모리가 점차 부족해져 성능 저하나 시스템 중단이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nf_tables: nft_dynset: fix possible stateful expression memleak in error path
If cloning the second stateful expression in the element via GFP_ATOMIC
fails, then the first stateful expression remains in place without being
released.
unreferenced object (percpu) 0x607b97e9cab8 (size 16):
comm "softirq", pid 0, jiffies 4294931867
hex dump (first 16 bytes on cpu 3):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
backtrace (crc 0):
pcpu_alloc_noprof+0x453/0xd80
nft_counter_clone+0x9c/0x190 [nf_tables]
nft_expr_clone+0x8f/0x1b0 [nf_tables]
nft_dynset_new+0x2cb/0x5f0 [nf_tables]
nft_rhash_update+0x236/0x11c0 [nf_tables]
nft_dynset_eval+0x11f/0x670 [nf_tables]
nft_do_chain+0x253/0x1700 [nf_tables]
nft_do_chain_ipv4+0x18d/0x270 [nf_tables]
nf_hook_slow+0xaa/0x1e0
ip_local_deliver+0x209/0x330
📍 영향받는 시스템
Linux Kernel (nf_tables 모듈을 사용하는 시스템)
⚔️ 공격 벡터
네트워크 패킷 처리를 유도하여 nft_dynset 관련 오류 경로를 반복적으로 실행함으로써 메모리 고갈 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인