🇰🇷 한글 설명
Linux kernel의 netfilter tproxy 모듈에서 장치에서 IP가 비활성화된 경우 __in_dev_get_rcu() 함수가 NULL을 반환할 때 이를 확인하지 않아 NULL 포인터 역참조 취약점이 발생합니다. 이는 일반 보호 장애(general protection fault)로 인한 시스템 불안정성을 초래합니다.
💡 쉬운 설명
Linux의 네트워크 트래픽 리다이렉션 기능에서 특정 네트워크 환경에서 시스템이 충돌할 수 있습니다. 로컬 공격자가 이를 악용하여 서비스를 거부(DoS) 당할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: tproxy: bail out if IP has been disabled on the device
syzbot reports:
general protection fault, probably for non-canonical address 0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
[..]
RIP: 0010:nf_tproxy_laddr4+0xb7/0x340 net/ipv4/netfilter/nf_tproxy_ipv4.c:62
Call Trace:
nft_tproxy_eval_v4 net/netfilter/nft_tproxy.c:56 [inline]
nft_tproxy_eval+0xa9a/0x1a00 net/netfilter/nft_tproxy.c:168
__in_dev_get_rcu() can return NULL, so check for this.
📍 영향받는 시스템
Linux kernel 5.x 이상 (정확한 버전은 배포판별로 상이, netfilter tproxy 모듈 활성화된 커널)
⚔️ 공격 벡터
로컬 공격자가 tproxy 기능이 활성화된 시스템에서 특정 네트워크 설정(IP 비활성화)으로 NULL 포인터 역참조 트리거
🛡️ 대응 방법
Linux kernel을 최신 버전으로 업데이트하여 netfilter tproxy의 NULL 포인터 체크 패치 적용
🔧 검증 코드
커널 버전을 확인하고 tproxy 모듈이 활성화되어 있으면 공급자의 보안 업데이트 페이지에서 해당 커널 버전의 패치 여부 확인
uname -r && grep -q 'nf_tproxy' /boot/config-$(uname -r) && echo 'tproxy enabled'