summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoung Xiao <YangX92@hotmail.com>2019-04-12 10:24:30 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-10 18:53:15 +0300
commit2c33156b2d2f5efe820d8efdd610fb168c9acf72 (patch)
tree1a59d9779903ad63dd8d037b702cbb3690d2d663
parent07b7b1c823d602d0e5d3596387d7f0e67a7e9b5e (diff)
downloadlinux-2c33156b2d2f5efe820d8efdd610fb168c9acf72.tar.xz
Bluetooth: hidp: fix buffer overflow
commit a1616a5ac99ede5d605047a9012481ce7ff18b16 upstream. Struct ca is copied from userspace. It is not checked whether the "name" field is NULL terminated, which allows local users to obtain potentially sensitive information from kernel stack memory, via a HIDPCONNADD command. This vulnerability is similar to CVE-2011-1079. Signed-off-by: Young Xiao <YangX92@hotmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/bluetooth/hidp/sock.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bluetooth/hidp/sock.c b/net/bluetooth/hidp/sock.c
index 008ba439bd62..cc80c76177b6 100644
--- a/net/bluetooth/hidp/sock.c
+++ b/net/bluetooth/hidp/sock.c
@@ -76,6 +76,7 @@ static int hidp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long
sockfd_put(csock);
return err;
}
+ ca.name[sizeof(ca.name)-1] = 0;
err = hidp_connection_add(&ca, csock, isock);
if (!err && copy_to_user(argp, &ca, sizeof(ca)))