From: Greg Kroah-Hartman Date: Thu, 16 Aug 2018 17:01:01 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v3.18.119~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9bc3318bfc55959633ac2dae8ba4b0debc55a9c;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: bluetooth-hidp-buffer-overflow-in-hidp_process_report.patch --- diff --git a/queue-3.18/bluetooth-hidp-buffer-overflow-in-hidp_process_report.patch b/queue-3.18/bluetooth-hidp-buffer-overflow-in-hidp_process_report.patch new file mode 100644 index 00000000000..9c74d860679 --- /dev/null +++ b/queue-3.18/bluetooth-hidp-buffer-overflow-in-hidp_process_report.patch @@ -0,0 +1,50 @@ +From 7992c18810e568b95c869b227137a2215702a805 Mon Sep 17 00:00:00 2001 +From: Mark Salyzyn +Date: Tue, 31 Jul 2018 15:02:13 -0700 +Subject: Bluetooth: hidp: buffer overflow in hidp_process_report + +From: Mark Salyzyn + +commit 7992c18810e568b95c869b227137a2215702a805 upstream. + +CVE-2018-9363 + +The buffer length is unsigned at all layers, but gets cast to int and +checked in hidp_process_report and can lead to a buffer overflow. +Switch len parameter to unsigned int to resolve issue. + +This affects 3.18 and newer kernels. + +Signed-off-by: Mark Salyzyn +Fixes: a4b1b5877b514b276f0f31efe02388a9c2836728 ("HID: Bluetooth: hidp: make sure input buffers are big enough") +Cc: Marcel Holtmann +Cc: Johan Hedberg +Cc: "David S. Miller" +Cc: Kees Cook +Cc: Benjamin Tissoires +Cc: linux-bluetooth@vger.kernel.org +Cc: netdev@vger.kernel.org +Cc: linux-kernel@vger.kernel.org +Cc: security@kernel.org +Cc: kernel-team@android.com +Acked-by: Kees Cook +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hidp/core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/net/bluetooth/hidp/core.c ++++ b/net/bluetooth/hidp/core.c +@@ -416,8 +416,8 @@ static void hidp_del_timer(struct hidp_s + del_timer(&session->timer); + } + +-static void hidp_process_report(struct hidp_session *session, +- int type, const u8 *data, int len, int intr) ++static void hidp_process_report(struct hidp_session *session, int type, ++ const u8 *data, unsigned int len, int intr) + { + if (len > HID_MAX_BUFFER_SIZE) + len = HID_MAX_BUFFER_SIZE; diff --git a/queue-3.18/series b/queue-3.18/series index 4a937b4eaeb..b75b64d076b 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -12,3 +12,4 @@ crypto-vmac-require-a-block-cipher-with-128-bit-block-size.patch crypto-vmac-separate-tfm-and-request-context.patch crypto-blkcipher-fix-crash-flushing-dcache-in-error-path.patch crypto-ablkcipher-fix-crash-flushing-dcache-in-error-path.patch +bluetooth-hidp-buffer-overflow-in-hidp_process_report.patch