🇰🇷 한글 설명
Linux 커널의 netfilter 구성 요소인 nft_fib에서 발생한 스택 정보 유출 취약점입니다. 특정 경로에서 인터페이스 이름(OIFNAME)을 저장할 때 전체 레지스터를 초기화하지 않아, 커널 스택에 남아있던 이전 데이터가 사용자 공간으로 유출될 수 있습니다.
💡 쉬운 설명
컴퓨터의 중요한 정보가 담긴 메모리 일부가 제대로 지워지지 않은 채 외부로 노출될 수 있는 문제입니다. 공격자는 이를 통해 시스템 내부의 민감한 정보를 엿볼 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_fib: fix stale stack leak via the OIFNAME register
For NFT_FIB_RESULT_OIFNAME the destination register is declared with
len = IFNAMSIZ (four 32-bit registers), but on the lookup-fail,
RTN_LOCAL and oif-mismatch paths nft_fib{4,6}_eval() only writes one
register via "*dest = 0". The remaining three registers are left as
whatever was on the stack in nft_do_chain()'s struct nft_regs, and a
downstream expression that loads the register span can leak that
uninitialised kernel stack to userspace.
The NFTA_FIB_F_PRESENT existence check has the same shape: it is only
meaningful for NFT_FIB_RESULT_OIF, yet it was accepted for any result type
while the eval stores a single byte via nft_reg_store8(), leaving the rest
of the declared span stale.
Fix both:
- replace the bare "*dest = 0" in the eval with nft_fib_store_result(),
which strscpy_pad()s the whole IFNAMSIZ for OIFNAME (and is already
used on the other early-return path), and
- restrict NFTA_FIB_F_PRESENT to NFT_FIB_RESULT_OIF and declare its
destination as a single u8, so the marked span matches the one byte
the eval writes.
📍 영향받는 시스템
Linux kernel (netfilter/nftables 관련 모듈 사용 시스템)
⚔️ 공격 벡터
조작된 nftables 규칙을 통해 특정 경로(RTN_LOCAL 또는 oif-mismatch)를 유도하여 커널 스택 데이터를 읽어냄
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 공지(CVE-2026-53134)와 대조하여 확인