diff options
| author | Weiming Shi <bestswngs@gmail.com> | 2026-03-25 14:10:58 +0100 |
|---|---|---|
| committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2026-03-26 13:15:46 +0100 |
| commit | 52025ebaa29f4eb4ed8bf92ce83a68f24ab7fdf7 (patch) | |
| tree | 1583a3c072cb35119fa9a0a86582acc69c6e1bf2 /net/ipv6 | |
| parent | 6caefcd9491c408a4d161f7b60c8bb3d956526dd (diff) | |
| download | lwn-52025ebaa29f4eb4ed8bf92ce83a68f24ab7fdf7.tar.gz lwn-52025ebaa29f4eb4ed8bf92ce83a68f24ab7fdf7.zip | |
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.
Fixes: df6fb868d611 ("[NETFILTER]: nfnetlink: convert to generic netlink attribute functions")
Reported-by: Xiang Mei <xmei5@asu.edu>
Signed-off-by: Weiming Shi <bestswngs@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions
