linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors
@ 2019-03-22 15:43 Arnd Bergmann
  0 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2019-03-22 15:43 UTC (permalink / raw)
  To: stable, Greg Kroah-Hartman, Kees Cook, Sebastian Andrzej Siewior,
	Gustavo A. R. Silva
  Cc: Josh Boyer, Ralf Spenneberg, Arnd Bergmann, linux-usb,
	linux-kernel

From: Josh Boyer <jwboyer@fedoraproject.org>

The iowarrior driver expects at least one valid endpoint.  If given
malicious descriptors that specify 0 for the number of endpoints,
it will crash in the probe function.  Ensure there is at least
one endpoint on the interface before using it.

The full report of this issue can be found here:
http://seclists.org/bugtraq/2016/Mar/87

Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 4ec0ef3a82125efc36173062a50624550a900ae0)
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/usb/misc/iowarrior.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index 5e43fd881a9c..381a92a0ebb6 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -787,6 +787,12 @@ static int iowarrior_probe(struct usb_interface *interface,
 	iface_desc = interface->cur_altsetting;
 	dev->product_id = le16_to_cpu(udev->descriptor.idProduct);
 
+	if (iface_desc->desc.bNumEndpoints < 1) {
+		dev_err(&interface->dev, "Invalid number of endpoints\n");
+		retval = -EINVAL;
+		goto error;
+	}
+
 	/* set up the endpoint information */
 	for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
 		endpoint = &iface_desc->endpoint[i].desc;

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors
@ 2019-03-26  1:13 Greg Kroah-Hartman
  0 siblings, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2019-03-26  1:13 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: stable, Kees Cook, Sebastian Andrzej Siewior, Gustavo A. R. Silva,
	Josh Boyer, Ralf Spenneberg, linux-usb, linux-kernel

On Fri, Mar 22, 2019 at 04:43:55PM +0100, Arnd Bergmann wrote:
> From: Josh Boyer <jwboyer@fedoraproject.org>
> 
> The iowarrior driver expects at least one valid endpoint.  If given
> malicious descriptors that specify 0 for the number of endpoints,
> it will crash in the probe function.  Ensure there is at least
> one endpoint on the interface before using it.
> 
> The full report of this issue can be found here:
> http://seclists.org/bugtraq/2016/Mar/87
> 
> Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> (cherry picked from commit 4ec0ef3a82125efc36173062a50624550a900ae0)
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/usb/misc/iowarrior.c | 6 ++++++
>  1 file changed, 6 insertions(+)

This commit has been in the tree for a long time.  It was in the 4.4.7
release, back in April 2016.  And then it was reverted in commit
b7321e81fc36 ("USB: iowarrior: fix NULL-deref at probe") as it broke
systems.  So why add it back, the correct functionality should be there
today, right?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors
@ 2019-03-26  8:20 Arnd Bergmann
  0 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2019-03-26  8:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: # 3.4.x, Kees Cook, Sebastian Andrzej Siewior,
	Gustavo A. R. Silva, Josh Boyer, Ralf Spenneberg, USB list,
	Linux Kernel Mailing List, Chunyan Zhang, Baolin Wang

On Tue, Mar 26, 2019 at 2:23 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> On Fri, Mar 22, 2019 at 04:43:55PM +0100, Arnd Bergmann wrote:
> > From: Josh Boyer <jwboyer@fedoraproject.org>
> >
> > The iowarrior driver expects at least one valid endpoint.  If given
> > malicious descriptors that specify 0 for the number of endpoints,
> > it will crash in the probe function.  Ensure there is at least
> > one endpoint on the interface before using it.
> >
> > The full report of this issue can be found here:
> > http://seclists.org/bugtraq/2016/Mar/87
> >
> > Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
> > Cc: stable <stable@vger.kernel.org>
> > Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > (cherry picked from commit 4ec0ef3a82125efc36173062a50624550a900ae0)
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> >  drivers/usb/misc/iowarrior.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
>
> This commit has been in the tree for a long time.  It was in the 4.4.7
> release, back in April 2016.  And then it was reverted in commit
> b7321e81fc36 ("USB: iowarrior: fix NULL-deref at probe") as it broke
> systems.  So why add it back, the correct functionality should be there
> today, right?

Sorry I missed that history. The script I used to identify patches noticed
that this patch was not applied, but I did not have a check for already-
reverted patches.

Chunyan, Baolin: it seems the spreadtrum 4.4 kernel got this wrong
as well, by backporting the patch again on top of 4.4.172. Can you check
the latest internal version for this?

       Arnd

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors
@ 2019-03-26  9:35 Baolin Wang
  0 siblings, 0 replies; 5+ messages in thread
From: Baolin Wang @ 2019-03-26  9:35 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Greg Kroah-Hartman, # 3.4.x, Kees Cook, Sebastian Andrzej Siewior,
	Gustavo A. R. Silva, Josh Boyer, Ralf Spenneberg, USB list,
	Linux Kernel Mailing List, Chunyan Zhang, Baolin Wang, orson.zhai,
	Chunyan Zhang (张春艳)

On Tue, 26 Mar 2019 at 16:21, Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Tue, Mar 26, 2019 at 2:23 AM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > On Fri, Mar 22, 2019 at 04:43:55PM +0100, Arnd Bergmann wrote:
> > > From: Josh Boyer <jwboyer@fedoraproject.org>
> > >
> > > The iowarrior driver expects at least one valid endpoint.  If given
> > > malicious descriptors that specify 0 for the number of endpoints,
> > > it will crash in the probe function.  Ensure there is at least
> > > one endpoint on the interface before using it.
> > >
> > > The full report of this issue can be found here:
> > > http://seclists.org/bugtraq/2016/Mar/87
> > >
> > > Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
> > > Cc: stable <stable@vger.kernel.org>
> > > Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
> > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > (cherry picked from commit 4ec0ef3a82125efc36173062a50624550a900ae0)
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > > ---
> > >  drivers/usb/misc/iowarrior.c | 6 ++++++
> > >  1 file changed, 6 insertions(+)
> >
> > This commit has been in the tree for a long time.  It was in the 4.4.7
> > release, back in April 2016.  And then it was reverted in commit
> > b7321e81fc36 ("USB: iowarrior: fix NULL-deref at probe") as it broke
> > systems.  So why add it back, the correct functionality should be there
> > today, right?
>
> Sorry I missed that history. The script I used to identify patches noticed
> that this patch was not applied, but I did not have a check for already-
> reverted patches.
>
> Chunyan, Baolin: it seems the spreadtrum 4.4 kernel got this wrong
> as well, by backporting the patch again on top of 4.4.172. Can you check
> the latest internal version for this?

Yes, I saw this patch in our 4.4 kernel.

Orson, we should revert this patch from our kernel as Greg mentioned.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors
@ 2019-03-26  9:47 翟京 (Orson Zhai)
  0 siblings, 0 replies; 5+ messages in thread
From: 翟京 (Orson Zhai) @ 2019-03-26  9:47 UTC (permalink / raw)
  To: Baolin Wang, Arnd Bergmann
  Cc: Greg Kroah-Hartman, # 3.4.x, Kees Cook, Sebastian Andrzej Siewior,
	Gustavo A. R. Silva, Josh Boyer, Ralf Spenneberg, USB list,
	Linux Kernel Mailing List,
	张春艳 (Chunyan Zhang),
	王宝林 (Baolin Wang)

Hi Arnd, Baolin,

Thank you!

I am in travel.

I 'll apply it when I am back.

Best,
Orson
--------
Good patches are always welcome!

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-26  9:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-26  1:13 [BACKPORT,4.4.y,04/25] USB: iowarrior: fix oops with malicious USB descriptors Greg Kroah-Hartman
  -- strict thread matches above, loose matches on Subject: below --
2019-03-26  9:47 翟京 (Orson Zhai)
2019-03-26  9:35 Baolin Wang
2019-03-26  8:20 Arnd Bergmann
2019-03-22 15:43 Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).