Return-Path: MIME-Version: 1.0 Sender: keescook@google.com In-Reply-To: <20180731220225.159741-1-salyzyn@android.com> References: <20180731220225.159741-1-salyzyn@android.com> From: Kees Cook Date: Tue, 31 Jul 2018 16:41:35 -0700 Message-ID: Subject: Re: [PATCH] HID: Bluetooth: hidp: buffer overflow in hidp_process_report To: Mark Salyzyn Cc: LKML , Marcel Holtmann , Johan Hedberg , "David S. Miller" , Benjamin Tissoires , linux-bluetooth@vger.kernel.org, Network Development , Security Officers , Android Kernel Team , Jiri Kosina Content-Type: text/plain; charset="UTF-8" List-ID: On Tue, Jul 31, 2018 at 3:02 PM, Mark Salyzyn wrote: > 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") nit: normally just first 12 of the sha is used. > 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 > --- > net/bluetooth/hidp/core.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c > index 1036e4fa1ea2..3bba8f4b08a9 100644 > --- a/net/bluetooth/hidp/core.c > +++ b/net/bluetooth/hidp/core.c > @@ -431,8 +431,8 @@ static void hidp_del_timer(struct hidp_session *session) > 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; Acked-by: Kees Cook Thanks! -Kees -- Kees Cook Pixel Security