mpt2sas: prevent heap overflows and unchecked reads
authorDan Rosenberg <drosenberg@vsecurity.com>
Tue, 5 Apr 2011 16:45:59 +0000 (12:45 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 9 May 2011 22:54:55 +0000 (15:54 -0700)
commite79b858ad011c644691905d3bccd529c930c7d5b
tree354f24f097b0ad7efc7a7134654a2e67d7a3ca3b
parent32334ea87f198691f373615d8acd626d5da35132
mpt2sas: prevent heap overflows and unchecked reads

commit a1f74ae82d133ebb2aabb19d181944b4e83e9960 upstream.

At two points in handling device ioctls via /dev/mpt2ctl, user-supplied
length values are used to copy data from userspace into heap buffers
without bounds checking, allowing controllable heap corruption and
subsequently privilege escalation.

Additionally, user-supplied values are used to determine the size of a
copy_to_user() as well as the offset into the buffer to be read, with no
bounds checking, allowing users to read arbitrary kernel memory.

Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
Acked-by: Eric Moore <eric.moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/mpt2sas/mpt2sas_ctl.c