-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 PRE-CERT Security Advisory ========================== * Advisory: PRE-SA-2012-03 * Released on: 10 May 2012 * Affected product: Linux Kernel 3.3.x <= 3.3.4 2.6.x <= 2.6.35.13 * Impact: code execution / privilege escalation * Origin: HFS plus file system * Credit: Timo Warns (PRESENSE Technologies GmbH) * CVE Identifier: CVE-2012-2319 Summary - ------- The Linux kernel contains a vulnerability in the driver for HFS plus file systems that may be exploited for code execution or privilege escalation. A specially-crafted HFS plus filesystem can cause a buffer overflow via the memcpy() call of hfs_bnode_read() (in fs/hfsplus/bnode.c). The functions hfsplus_rename_cat() (in fs/hfsplus/catalog.c) and hfsplus_readdir() (in fs/hfsplus/dir.c) call hfs_bnode_read() with values that result in a memcpy() call with a fixed-length destination buffer and both, a source buffer and length, that are read from the filesystem without sufficient validation. The buffer overflows were previously fixed in the HFS filesystem driver and have been assigned CVE-2009-4020 (commit ec81aecb29668ad71f699f4e7b96ec46691895b6 [1]). Commit 6f24f892871acc47b40dd594c63606a17c714f77 ("hfsplus: fix a potential buffer overflow") [2] also fixes the issue in the HFS plus filesystem driver. Workaround - ---------- Compile and use a kernel that does not support the HFS plus file system. The corresponding configuration key is CONFIG_HFSPLUS_FS. Solution - -------- A patch is available at http://git.kernel.org/linus/6f24f892871acc47b40dd594c63606a17c714f77 The issue has been fixed in Linux 3.3.5. References - ---------- [1] http://git.kernel.org/linus/ec81aecb29668ad71f699f4e7b96ec46691895b6 [2] http://git.kernel.org/linus/6f24f892871acc47b40dd594c63606a17c714f77 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-2012-03.txt 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.18 (GNU/Linux) iQEcBAEBCAAGBQJPs7KaAAoJEI9qFXJ0Ecg6CwUH/RGNDS9dYwUOAXYHLd80/bq+ APESwzLzBnbxiTs6u6HNjPKZzDPOw/dZSTQMNhff4QhKTD2dc7J/iBlYrf6AC4tC j/BSTNWpTpdB2C/cwtkxCXfUKMw6HanxWlJy/6jAdOdgsRrq6MkfyHwWGI8RpTqY 5akYesN7ynsAzoKJMHLr04XAFMxA5N8TPFAumcesn+dHcSyQf7ey+X4G2XUmto8C N3yIgmwLE1ekF6YqHMwhEXS9RwtxV1eHB0gR0FiUdrkWk2ac9Wn9E5m6BBUQp0ZB H3oEoa4TDXii+a6PIKJmBfGRqi5wgHeNLwO1NQS5xgHNhKUiu2/ijZ8vMwuewKk= =OtXB -----END PGP SIGNATURE-----