CVE-2026-31428 PUBLISHED

netfilter: nfnetlink_log: fix uninitialized padding leak in NFULA_PAYLOAD

Assigner: Linux
Reserved: 09.03.2026 Published: 13.04.2026 Updated: 13.04.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to fc961dd7272b5e4a462999635e44a4770d7f2482 (excl.)
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to a8365d1064ded323797c5e28e91070c52f44b76c (excl.)
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to a2f6ff3444b663d6cfa63eadd61327a18592885a (excl.)
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to c9f6c51d36482805ac3ffadb9663fe775a13e926 (excl.)
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to 7eff72968161fb8ddb26113344de3b92fb7d7ef5 (excl.)
  • affected from df6fb868d6118686805c2fa566e213a8f31c8e4f to 52025ebaa29f4eb4ed8bf92ce83a68f24ab7fdf7 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.24 is affected
  • unaffected from 0 to 2.6.24 (excl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.131 to 6.6.* (incl.)
  • unaffected from 6.12.80 to 6.12.* (incl.)
  • unaffected from 6.18.21 to 6.18.* (incl.)
  • unaffected from 6.19.11 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References