🇰🇷 한글 설명
Linux 커널 netfilter nfnetlink_queue 모듈의 메모리 누수 취약점으로, PF_BRIDGE 패킷의 VLAN 속성 파싱 실패 시 대기열 항목(nf_queue_entry), 관련 sk_buff, 그리고 참조 카운트가 해제되지 않는다. 반복 트리거 시 커널 메모리 고갈로 인한 서비스 거부 발생 가능하다.
💡 쉬운 설명
Linux 커널의 네트워크 패킷 처리 시스템에서 특정 유형의 패킷 처리 중 메모리를 제대로 반환하지 않는 결함입니다. 공격자가 이를 반복적으로 악용하면 시스템의 메모리가 고갈되어 서버가 응답 불능 상태에 빠질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nfnetlink_queue: fix entry leak in bridge verdict error path
nfqnl_recv_verdict() calls find_dequeue_entry() to remove the queue
entry from the queue data structures, taking ownership of the entry.
For PF_BRIDGE packets, it then calls nfqa_parse_bridge() to parse VLAN
attributes. If nfqa_parse_bridge() returns an error (e.g. NFQA_VLAN
present but NFQA_VLAN_TCI missing), the function returns immediately
without freeing the dequeued entry or its sk_buff.
This leaks the nf_queue_entry, its associated sk_buff, and all held
references (net_device refcounts, struct net refcount). Repeated
triggering exhausts kernel memory.
Fix this by dropping the entry via nfqnl_reinject() with NF_DROP verdict
on the error path, consistent with other error handling in this file.
📍 영향받는 시스템
Linux kernel (netfilter nfnetlink_queue module) - 취약 패치가 적용되지 않은 모든 버전
⚔️ 공격 벡터
로컬 또는 원격 공격자가 브릿지 네트워크 트래픽을 통해 malformed VLAN 속성을 포함한 nfqueue 패킷을 반복 전송
🛡️ 대응 방법
Linux 커널을 업스트림 패치가 적용된 최신 버전으로 업데이트 (일반적으로 5.18.0 이상 권장)
🔧 검증 코드
커널 버전이 5.18 미만이면 vulnerable 출력; 5.18 이상이면 패치 적용된 것으로 간주. uname -r로 정확한 버전 확인 후 업데이트 필요 여부 판단.
uname -r | grep -oE '^[0-9]+\.[0-9]+' | awk '{if($1 < 5.18) print "vulnerable"}'