-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 PRE-CERT Security Advisory ========================== * Advisory: PRE-SA-2011-03 * Released on: 13 Apr 2011 * Last updated on: 4 Aug 2011 * Affected product: Linux Kernel 2.4 and 2.6 * Impact: denial-of-service * Origin: storage devices * Credit: Timo Warns (PRESENSE Technologies GmbH) * CVE Identifier: CVE-2011-1577 Summary - ------- The Linux kernel contains a vulnerability that may lead to a denial-of-service due to corrupted partition tables on storage devices. The kernel automatically evaluates partition tables of storage devices. The code for evaluating EFI GUID partition tables contains a buffer overflow bug that allows to cause kernel oops resulting in a denial of service. More precisely, crc = efi_crc32((const unsigned char *) (*gpt), le32_to_cpu((*gpt)->header_size)); computes a CRC32 checksum over gpt covering (*gpt)->header_size bytes. There is no validation of (*gpt)->header_size before the efi_crc32 call. A corrupted partition table may have large values for (*gpt)->header_size. In this case, the CRC32 computation access memory beyond the memory allocated for gpt, which may cause a kernel heap overflow. Workaround - ---------- Compile and use a kernel that does not evaluate EFI GUID partition tables. The corresponding configuration key is CONFIG_EFI_PARTITION. Solution - -------- A patch is available at http://www.spinics.net/lists/mm-commits/msg83274.html The bug has been fixed in Linux kernel 2.6.39.4. References - ---------- When further information becomes available, this advisory will be updated. The most recent version of this advisory is available at: http://www.pre-cert.de/advisories/PRE-SA-2011-03.txt ChangeLog - --------- * 4 Aug 2011 - Added further details to summary. - The bug has been fixed in Linux 2.6.39.4. Contact - ------- PRE-CERT can be reached under precert@pre-secure.de. For PGP key information, refer to http://www.pre-cert.de/. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) iQEbBAEBCAAGBQJOOyYzAAoJEJreX/O/+ER1l1wH91DpFeH1dVCXDrItyXcIoZLJ 7l9aQRqIvwdoqzKBTSYGgItvI3o2c7CBMy3EMQqQh6WxfbLtKFQL/htKUO3Inn3w 26iWKATnn9kIvqSrmxeejFBIzTgMe61mckziP9n/ztCjhn0cTkeZebOYEMA4bTEp AZsI5mpQ++LAzkyd1j5aJF15JU4ImRiT/hYXcpppmolAJXGCm0Fh05bosf3AlvVE 6znTsLi94DBjT7iTu6pazq3ovjCGt+BvFXRX7v61BuYL9cJh4nb3r4Wk1xW242x3 D+pdKcNeWLR0JxlaJkNa4AHi3aKF1BLntj0dAHZu0ke9+13LhhD3XC6CaeJcnQ== =j2D2 -----END PGP SIGNATURE-----