🇰🇷 한글 설명
Linux kernel의 netfilter nfnetlink_log 모듈에서 NFULA_PAYLOAD 속성 생성 시 패딩 바이트가 초기화되지 않아 할당되지 않은 메모리 내용이 NFLOG netlink 소켓을 통해 사용자 영역으로 유출되는 정보 공개 취약점입니다. 표준 nla_reserve()/nla_put() 함수 대신 수동으로 skb_put()과 skb_copy_bits()를 사용하면서 1-3바이트의 패딩이 초기화되지 않은 채로 남아있습니다.
💡 쉬운 설명
Linux 시스템의 네트워크 로깅 기능에서 보안되지 않은 메모리 영역의 내용이 외부에 노출되는 문제입니다. 정상적인 초기화 과정을 건너뛰어 의도하지 않은 데이터가 네트워크 로그를 통해 유출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nfnetlink_log: fix uninitialized padding leak in NFULA_PAYLOAD
__build_packet_message() manually constructs the NFULA_PAYLOAD netlink
attribute using skb_put() and skb_copy_bits(), bypassing the standard
nla_reserve()/nla_put() helpers. While nla_total_size(data_len) bytes
are allocated (including NLA alignment padding), only data_len bytes
of actual packet data are copied. The trailing nla_padlen(data_len)
bytes (1-3 when data_len is not 4-byte aligned) are never initialized,
leaking stale heap contents to userspace via the NFLOG netlink socket.
Replace the manual attribute construction with nla_reserve(), which
handles the tailroom check, header setup, and padding zeroing via
__nla_reserve(). The subsequent skb_copy_bits() fills in the payload
data on top of the properly initialized attribute.
📍 영향받는 시스템
netfilter nfnetlink_log 모듈을 포함한 모든 Linux kernel 버전 (특히 iptables/netfilter 로깅 기능 사용 시스템)
⚔️ 공격 벡터
NFLOG netlink 소켓에 접근 가능한 로컬 사용자가 네트워크 로그 메시지를 읽어 초기화되지 않은 커널 메모리의 민감한 정보를 획득
🛡️ 대응 방법
Linux kernel을 CVE-2026-31428 패치가 포함된 최신 버전으로 업데이트하여 __nla_reserve()를 통한 패딩 초기화 적용
🔧 검증 코드
kernel 버전과 배포판 버전을 확인한 후, 해당 배포판의 보안 공지에서 이 CVE의 수정 버전 이상으로 업데이트되었는지 확인
uname -r && cat /etc/os-release | grep VERSION_ID