Patch "mac: validate mac_partition is within sector" has been added to the 3.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac: validate mac_partition is within sector
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mac-validate-mac_partition-is-within-sector.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
02e2a5bfebe99edcf9d694575a75032d53fe1b73Mon Sep 17 00:00:00 2001
From: Kees Cook <[email protected]>
Date: Thu, 19 Nov 2015 17:18:54 -0800
Subject: mac: validate mac_partition is within sector
From: Kees Cook <[email protected]>
commit 02e2a5bfebe99edcf9d694575a75032d53fe1b73 upstream.
If md->signature == MAC_DRIVER_MAGIC and md->block_size == 1023, a single 512 byte sector would be read (secsize / 512). However the partition structure would be located past the end of the buffer (secsize % 512).
--- block/partitions/mac.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
block/partitions/mac.c +7 -3
@@ -32,7 +32,7 @@ int mac_partition(struct parsed_partitioSector sect;unsigned char *data;int slot, blocks_in_map; -unsigned secsize; +unsigned secsize, datasize, partoffset;#ifdef CONFIG_PPC_PMAC int found_root =0 ;int found_root_goodness =0 ;
@@ -50,10 +50,14 @@ int mac_partition(struct parsed_partitio } secsize =be16_to_cpu (md->block_size);put_dev_sector (sect); - data =read_part_sector (state, secsize/512 , §); + datasize =round_down (secsize,512 ); + data =read_part_sector (state, datasize /512 , §);if (!data)return -1 ; - part = (struct mac_partition *) (data + secsize%512 ); + partoffset = secsize %512 ; +if (partoffset +sizeof (*part) > datasize) +return -1 ; + part = (struct mac_partition *) (data + partoffset);if (be16_to_cpu (part->signature) !=MAC_PARTITION_MAGIC ) {put_dev_sector (sect);return 0 ;/* not a MacOS disk */
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/mac-validate-mac_partition-is-within-sector.patch