]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Aug 2015 22:34:30 +0000 (15:34 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Aug 2015 22:34:30 +0000 (15:34 -0700)
added patches:
md-use-kzalloc-when-bitmap-is-disabled.patch

queue-3.10/md-use-kzalloc-when-bitmap-is-disabled.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/md-use-kzalloc-when-bitmap-is-disabled.patch b/queue-3.10/md-use-kzalloc-when-bitmap-is-disabled.patch
new file mode 100644 (file)
index 0000000..172323c
--- /dev/null
@@ -0,0 +1,52 @@
+From b6878d9e03043695dbf3fa1caa6dfc09db225b16 Mon Sep 17 00:00:00 2001
+From: Benjamin Randazzo <benjamin@randazzo.fr>
+Date: Sat, 25 Jul 2015 16:36:50 +0200
+Subject: md: use kzalloc() when bitmap is disabled
+
+From: Benjamin Randazzo <benjamin@randazzo.fr>
+
+commit b6878d9e03043695dbf3fa1caa6dfc09db225b16 upstream.
+
+In drivers/md/md.c get_bitmap_file() uses kmalloc() for creating a
+mdu_bitmap_file_t called "file".
+
+5769         file = kmalloc(sizeof(*file), GFP_NOIO);
+5770         if (!file)
+5771                 return -ENOMEM;
+
+This structure is copied to user space at the end of the function.
+
+5786         if (err == 0 &&
+5787             copy_to_user(arg, file, sizeof(*file)))
+5788                 err = -EFAULT
+
+But if bitmap is disabled only the first byte of "file" is initialized
+with zero, so it's possible to read some bytes (up to 4095) of kernel
+space memory from user space. This is an information leak.
+
+5775         /* bitmap disabled, zero the first byte and copy out */
+5776         if (!mddev->bitmap_info.file)
+5777                 file->pathname[0] = '\0';
+
+Signed-off-by: Benjamin Randazzo <benjamin@randazzo.fr>
+Signed-off-by: NeilBrown <neilb@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/md/md.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/md/md.c
++++ b/drivers/md/md.c
+@@ -5628,9 +5628,9 @@ static int get_bitmap_file(struct mddev
+       int err = -ENOMEM;
+       if (md_allow_write(mddev))
+-              file = kmalloc(sizeof(*file), GFP_NOIO);
++              file = kzalloc(sizeof(*file), GFP_NOIO);
+       else
+-              file = kmalloc(sizeof(*file), GFP_KERNEL);
++              file = kzalloc(sizeof(*file), GFP_KERNEL);
+       if (!file)
+               goto out;
index 455c714677ab166da104e236a10ee8fdbf56bf0a..d8349c71350ef9b2f2c4fdf769ca3710f07a1798 100644 (file)
@@ -8,3 +8,4 @@ ipr-fix-incorrect-trace-indexing.patch
 ipr-fix-invalid-array-indexing-for-hrrq.patch
 xhci-fix-off-by-one-error-in-trb-dma-address-boundary-check.patch
 usb-sierra-add-1199-68ab-device-id.patch
+md-use-kzalloc-when-bitmap-is-disabled.patch