]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfrm_user: fix info leak in build_report()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Apr 2026 15:34:22 +0000 (17:34 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 7 Apr 2026 08:36:38 +0000 (10:36 +0200)
struct xfrm_user_report is a __u8 proto field followed by a struct
xfrm_selector which means there is three "empty" bytes of padding, but
the padding is never zeroed before copying to userspace.  Fix that up by
zeroing the structure before setting individual member variables.

Cc: stable <stable@kernel.org>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Simon Horman <horms@kernel.org>
Assisted-by: gregkh_clanker_t1000
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_user.c

index baa43c325da20109d6308beae4d17c84b35f44e4..d56450f61669127e2a9c3d064870c29a540d8949 100644 (file)
@@ -4125,6 +4125,7 @@ static int build_report(struct sk_buff *skb, u8 proto,
                return -EMSGSIZE;
 
        ur = nlmsg_data(nlh);
+       memset(ur, 0, sizeof(*ur));
        ur->proto = proto;
        memcpy(&ur->sel, sel, sizeof(ur->sel));