🇰🇷 한글 설명
Linux 커널의 netfilter nf_tables 서브시스템에서 NFT_DATA_VALUE를 데이터 레지스터에 저장할 때 검증이 불완전하여, 체인 객체의 포인터가 레지스터를 통해 유출될 수 있는 취약점입니다. CAP_NET_ADMIN 권한을 가진 로컬 사용자가 KASLR을 우회하고 커널 메모리 정보를 획득할 수 있습니다.
💡 쉬운 설명
Linux 시스템의 방화벽 규칙 설정 기능에서 입력값 검증이 완전하지 않아 시스템 메모리 주소 정보가 새어나갈 수 있습니다. 네트워크 권한이 있는 로컬 사용자가 악의적인 규칙을 통해 이 정보를 볼 수 있어서 시스템 보안이 약해집니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers
register store validation for NFT_DATA_VALUE is conditional, however,
the datatype is always either NFT_DATA_VALUE or NFT_DATA_VERDICT. This
only requires a new helper function to infer the register type from the
set datatype so this conditional check can be removed. Otherwise,
pointer to chain object can be leaked through the registers.
📍 영향받는 시스템
Linux kernel 2.6.30 이상 (nf_tables 지원) - 배포판별 패치 버전 상이, 일반적으로 2024년 중반 이전 버전
⚔️ 공격 벡터
CAP_NET_ADMIN 권한 또는 네트워크 네임스페이스 생성 권한을 가진 로컬 공격자가 결함있는 nf_tables 규칙을 작성하여 커널 포인터 주소 유출
🛡️ 대응 방법
Linux 커널을 nf_tables 검증 패치가 적용된 최신 버전으로 업데이트 (배포판별 패치 버전 확인 필수)
🔧 검증 코드
현재 커널 버전을 확인하고, nf_tables 모듈이 로드되거나 커널 설정에 활성화되어 있으면 CVE-2024-42070 패치 적용 여부 확인 필요
uname -r; lsmod | grep nf_tables; grep -q nf_tables /boot/config-$(uname -r) 2>/dev/null && echo 'nf_tables enabled in kernel' || echo 'check kernel config'