Kees Cook 961b33c244 jfs: Fix usercopy whitelist for inline inode data
Bart Massey reported what turned out to be a usercopy whitelist false
positive in JFS when symlink contents exceeded 128 bytes. The inline
inode data (i_inline) is actually designed to overflow into the "extended
area" following it (i_inline_ea) when needed. So the whitelist needed to
be expanded to include both i_inline and i_inline_ea (the whole size
of which is calculated internally using IDATASIZE, 256, instead of
sizeof(i_inline), 128).

$ cd /mnt/jfs
$ touch $(perl -e 'print "B" x 250')
$ ln -s B* b
$ ls -l >/dev/null

[  249.436410] Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLUB object 'jfs_ip' (offset 616, size 250)!

Reported-by: Bart Massey <bart.massey@gmail.com>
Fixes: 8d2704d382a9 ("jfs: Define usercopy region in jfs_ip slab cache")
Cc: Dave Kleikamp <shaggy@kernel.org>
Cc: jfs-discussion@lists.sourceforge.net
Cc: stable@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
2018-08-04 07:53:46 -07:00
..
2018-06-12 16:19:22 -07:00
2018-06-11 10:16:13 -07:00
2018-06-15 07:55:24 +09:00
2018-03-27 13:18:09 -04:00
2018-05-22 14:27:52 -04:00
2018-06-22 06:21:34 +09:00
2018-05-22 14:27:52 -04:00
2018-05-21 14:30:09 -04:00
2018-05-22 14:27:53 -04:00
2018-06-15 18:11:26 -03:00
2018-06-07 17:34:40 -07:00
2018-06-05 19:23:26 +02:00
2018-06-08 17:21:52 -07:00
2018-06-14 20:09:28 -04:00
2018-06-07 17:34:35 -07:00
2018-05-03 16:11:37 -06:00
2018-06-12 15:49:00 -07:00
2018-06-11 08:22:34 -07:00
2018-05-26 09:16:44 +02:00
2018-04-04 12:44:02 -07:00
2018-05-26 09:16:44 +02:00