linux-uconsole/fs/ecryptfs
Tyler Hicks 4d15dcb0e2 eCryptfs: Extend array bounds for all filename chars
commit 0f751e641a upstream.

From mhalcrow's original commit message:

    Characters with ASCII values greater than the size of
    filename_rev_map[] are valid filename characters.
    ecryptfs_decode_from_filename() will access kernel memory beyond
    that array, and ecryptfs_parse_tag_70_packet() will then decrypt
    those characters. The attacker, using the FNEK of the crafted file,
    can then re-encrypt the characters to reveal the kernel memory past
    the end of the filename_rev_map[] array. I expect low security
    impact since this array is statically allocated in the text area,
    and the amount of memory past the array that is accessible is
    limited by the largest possible ASCII filename character.

This patch solves the issue reported by mhalcrow but with an
implementation suggested by Linus to simply extend the length of
filename_rev_map[] to 256. Characters greater than 0x7A are mapped to
0x00, which is how invalid characters less than 0x7A were previously
being handled.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Reported-by: Michael Halcrow <mhalcrow@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09 08:52:19 -08:00
..
crypto.c eCryptfs: Extend array bounds for all filename chars 2011-12-09 08:52:19 -08:00
debug.c eCryptfs: update comment and debug statement 2007-10-16 09:43:11 -07:00
dentry.c eCryptfs: Handle NULL nameidata pointers 2011-02-21 14:45:57 -06:00
ecryptfs_kernel.h eCryptfs: Remove ecryptfs_header_cache_2 2011-05-29 14:24:25 -05:00
file.c eCryptfs: Flush file in vma close 2011-12-09 08:52:18 -08:00
inode.c ecryptfs: Make inode bdi consistent with superblock bdi 2011-08-04 21:58:39 -07:00
Kconfig eCryptfs: Remove Kconfig NET dependency and select MD5 2009-10-08 11:31:36 -05:00
keystore.c eCryptfs: Unlock keys needed by ecryptfsd 2011-08-04 21:58:39 -07:00
kthread.c eCryptfs: Add reference counting to lower files 2011-04-25 18:32:37 -05:00
main.c Ecryptfs: Add mount option to check uid of device being mounted = expect uid 2011-08-15 18:31:41 -07:00
Makefile eCryptfs: remove netlink transport 2008-10-16 11:21:39 -07:00
messaging.c ecryptfs: properly mark init functions 2010-08-27 10:50:52 -05:00
miscdev.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
mmap.c eCryptfs: Unlock page in write_begin error path 2011-03-28 01:47:46 -05:00
read_write.c eCryptfs: Return error when lower file pointer is NULL 2011-08-15 18:31:41 -07:00
super.c eCryptfs: Consolidate inode functions into inode.c 2011-05-29 12:49:53 -05:00