This is a note to let you know that I've just added the patch titled
xfrm_user: return error pointer instead of NULL
to the 3.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xfrm_user-return-error-pointer-instead-of-null.patch
and it can be found in the queue-3.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From f356c026150463a7289d3fd9ca76b489c52abec6 Mon Sep 17 00:00:00 2001
From: Mathias Krause <[email protected]>
Date: Thu, 13 Sep 2012 11:41:26 +0000
Subject: xfrm_user: return error pointer instead of NULL
From: Mathias Krause <[email protected]>
[ Upstream commit 864745d291b5ba80ea0bd0edcbe67273de368836 ]
When dump_one_state() returns an error, e.g. because of a too small
buffer to dump the whole xfrm state, xfrm_state_netlink() returns NULL
instead of an error pointer. But its callers expect an error pointer
and therefore continue to operate on a NULL skbuff.
This could lead to a privilege escalation (execution of user code in
kernel context) if the attacker has CAP_NET_ADMIN and is able to map
address 0.
Signed-off-by: Mathias Krause <[email protected]>
Acked-by: Steffen Klassert <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
net/xfrm/xfrm_user.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -862,6 +862,7 @@ static struct sk_buff *xfrm_state_netlin
{
struct xfrm_dump_info info;
struct sk_buff *skb;
+ int err;
skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);
if (!skb)
@@ -872,9 +873,10 @@ static struct sk_buff *xfrm_state_netlin
info.nlmsg_seq = seq;
info.nlmsg_flags = 0;
- if (dump_one_state(x, 0, &info)) {
+ err = dump_one_state(x, 0, &info);
+ if (err) {
kfree_skb(skb);
- return NULL;
+ return ERR_PTR(err);
}
return skb;
Patches currently in stable-queue which might be from [email protected] are
queue-3.0/xfrm_user-return-error-pointer-instead-of-null-2.patch
queue-3.0/xfrm_user-ensure-user-supplied-esn-replay-window-is-valid.patch
queue-3.0/xfrm_user-don-t-copy-esn-replay-window-twice-for-new-states.patch
queue-3.0/xfrm_user-fix-info-leak-in-copy_to_user_tmpl.patch
queue-3.0/xfrm_user-fix-info-leak-in-copy_to_user_auth.patch
queue-3.0/xfrm_user-return-error-pointer-instead-of-null.patch
queue-3.0/xfrm_user-fix-info-leak-in-copy_to_user_policy.patch
queue-3.0/xfrm_user-fix-info-leak-in-copy_to_user_state.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html