diff options
author | Kangjie Lu <kangjielu@gmail.com> | 2016-05-08 12:10:14 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-05-18 18:35:07 -0700 |
commit | f7ee286fab0b55bf5908978c94e50d52e627b3ac (patch) | |
tree | cb8fd699b81336e67a808b8208975a4efe86484a /net | |
parent | 05b902a09b329bbe0b330332efe4c46ee0dbc83f (diff) | |
download | linux-stable-f7ee286fab0b55bf5908978c94e50d52e627b3ac.tar.gz linux-stable-f7ee286fab0b55bf5908978c94e50d52e627b3ac.tar.bz2 linux-stable-f7ee286fab0b55bf5908978c94e50d52e627b3ac.zip |
net: fix a kernel infoleak in x25 module
[ Upstream commit 79e48650320e6fba48369fccf13fd045315b19b8 ]
Stack object "dte_facilities" is allocated in x25_rx_call_request(),
which is supposed to be initialized in x25_negotiate_facilities.
However, 5 fields (8 bytes in total) are not initialized. This
object is then copied to userland via copy_to_user, thus infoleak
occurs.
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/x25/x25_facilities.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/x25/x25_facilities.c b/net/x25/x25_facilities.c index 7ecd04c21360..997ff7b2509b 100644 --- a/net/x25/x25_facilities.c +++ b/net/x25/x25_facilities.c @@ -277,6 +277,7 @@ int x25_negotiate_facilities(struct sk_buff *skb, struct sock *sk, memset(&theirs, 0, sizeof(theirs)); memcpy(new, ours, sizeof(*new)); + memset(dte, 0, sizeof(*dte)); len = x25_parse_facilities(skb, &theirs, dte, &x25->vc_facil_mask); if (len < 0) |