forked from rpms/kernel
		
	CVE-2016-2188 iowarrior: oops on invalid USB descriptors (rhbz 1317018 1317467)
This commit is contained in:
		
							parent
							
								
									4c948d6d0b
								
							
						
					
					
						commit
						89cc46c010
					
				
							
								
								
									
										40
									
								
								USB-iowarrior-fix-oops-with-malicious-USB-descriptor.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								USB-iowarrior-fix-oops-with-malicious-USB-descriptor.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
From 3620ebad64a327113bed34edefd45c3605086fc6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Josh Boyer <jwboyer@fedoraproject.org>
 | 
			
		||||
Date: Mon, 14 Mar 2016 10:38:31 -0400
 | 
			
		||||
Subject: [PATCH] USB: iowarrior: fix oops with malicious USB descriptors
 | 
			
		||||
 | 
			
		||||
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>
 | 
			
		||||
---
 | 
			
		||||
 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 c6bfd13f6c92..1950e87b4219 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;
 | 
			
		||||
-- 
 | 
			
		||||
2.5.0
 | 
			
		||||
 | 
			
		||||
@ -637,6 +637,9 @@ Patch672: cypress_m8-add-sanity-checking.patch
 | 
			
		||||
#CVE-2016-2186 rhbz 1317015 1317464
 | 
			
		||||
Patch673: USB-input-powermate-fix-oops-with-malicious-USB-desc.patch
 | 
			
		||||
 | 
			
		||||
#CVE-2016-2188 rhbz 1317018 1317467
 | 
			
		||||
Patch674: USB-iowarrior-fix-oops-with-malicious-USB-descriptor.patch
 | 
			
		||||
 | 
			
		||||
# END OF PATCH DEFINITIONS
 | 
			
		||||
 | 
			
		||||
%endif
 | 
			
		||||
@ -2159,6 +2162,7 @@ fi
 | 
			
		||||
# 
 | 
			
		||||
%changelog
 | 
			
		||||
* Fri Mar 18 2016 Josh Boyer <jwboyer@fedoraproject.org>
 | 
			
		||||
- CVE-2016-2188 iowarrior: oops on invalid USB descriptors (rhbz 1317018 1317467)
 | 
			
		||||
- CVE-2016-2186 powermate: oops on invalid USB descriptors (rhbz 1317015 1317464)
 | 
			
		||||
- CVE-2016-3137 cypress_m8: oops on invalid USB descriptors (rhbz 1317010 1316996)
 | 
			
		||||
- CVE-2016-2184 alsa: panic on invalid USB descriptors (rhbz 1317012 1317470)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user