Commit 50329c8a authored by Mathias Krause's avatar Mathias Krause Committed by Steffen Klassert

xfrm_user: fix info leak in xfrm_notify_sa()

The memory reserved to dump the ID of the xfrm state includes a padding
byte in struct xfrm_usersa_id added by the compiler for alignment. To
prevent the heap info leak, memset(0) the whole struct before filling
it.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Fixes: 0603eac0 ("[IPSEC]: Add XFRMA_SA/XFRMA_POLICY for delete notification")
Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
parent 5fe0d4bd
...@@ -2715,6 +2715,7 @@ static int xfrm_notify_sa(struct xfrm_state *x, const struct km_event *c) ...@@ -2715,6 +2715,7 @@ static int xfrm_notify_sa(struct xfrm_state *x, const struct km_event *c)
struct nlattr *attr; struct nlattr *attr;
id = nlmsg_data(nlh); id = nlmsg_data(nlh);
memset(id, 0, sizeof(*id));
memcpy(&id->daddr, &x->id.daddr, sizeof(id->daddr)); memcpy(&id->daddr, &x->id.daddr, sizeof(id->daddr));
id->spi = x->id.spi; id->spi = x->id.spi;
id->family = x->props.family; id->family = x->props.family;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment