]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Aug 2022 14:00:56 +0000 (16:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Aug 2022 14:00:56 +0000 (16:00 +0200)
added patches:
macintosh-adb-fix-oob-read-in-do_adb_query-function.patch

queue-4.14/macintosh-adb-fix-oob-read-in-do_adb_query-function.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/macintosh-adb-fix-oob-read-in-do_adb_query-function.patch b/queue-4.14/macintosh-adb-fix-oob-read-in-do_adb_query-function.patch
new file mode 100644 (file)
index 0000000..8870d24
--- /dev/null
@@ -0,0 +1,37 @@
+From fd97e4ad6d3b0c9fce3bca8ea8e6969d9ce7423b Mon Sep 17 00:00:00 2001
+From: Ning Qiang <sohu0106@126.com>
+Date: Wed, 13 Jul 2022 23:37:34 +0800
+Subject: macintosh/adb: fix oob read in do_adb_query() function
+
+From: Ning Qiang <sohu0106@126.com>
+
+commit fd97e4ad6d3b0c9fce3bca8ea8e6969d9ce7423b upstream.
+
+In do_adb_query() function of drivers/macintosh/adb.c, req->data is copied
+form userland. The parameter "req->data[2]" is missing check, the array
+size of adb_handler[] is 16, so adb_handler[req->data[2]].original_address and
+adb_handler[req->data[2]].handler_id will lead to oob read.
+
+Cc: stable <stable@kernel.org>
+Signed-off-by: Ning Qiang <sohu0106@126.com>
+Reviewed-by: Kees Cook <keescook@chromium.org>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20220713153734.2248-1-sohu0106@126.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/macintosh/adb.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/macintosh/adb.c
++++ b/drivers/macintosh/adb.c
+@@ -647,7 +647,7 @@ do_adb_query(struct adb_request *req)
+       switch(req->data[1]) {
+       case ADB_QUERY_GETDEVINFO:
+-              if (req->nbytes < 3)
++              if (req->nbytes < 3 || req->data[2] >= 16)
+                       break;
+               mutex_lock(&adb_handler_mutex);
+               req->reply[0] = adb_handler[req->data[2]].original_address;
index c53ce675081c1f649891cf7538dde3d02615ce5e..a3f7314768b38e5bbc86c313eb93cde82ae0a709 100644 (file)
@@ -9,3 +9,4 @@ arm-crypto-comment-out-gcc-warning-that-breaks-clang-builds.patch
 mt7601u-add-usb-device-id-for-some-versions-of-xiaodu-wifi-dongle.patch
 acpi-video-force-backlight-native-for-some-tongfang-devices.patch
 acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch
+macintosh-adb-fix-oob-read-in-do_adb_query-function.patch