module: replace copy_module_from_fd with kernel version
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Wed, 30 Dec 2015 12:35:30 +0000 (07:35 -0500)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Sun, 21 Feb 2016 14:06:12 +0000 (09:06 -0500)
commita1db74209483a24c861c848b4bb79a4d945ef6fa
tree4edf4c1a22e4a8446166366e5cee358c99e8fda0
parentb844f0ecbc5626ec26cfc70cb144a4c9b85dc3f2
module: replace copy_module_from_fd with kernel version

Replace copy_module_from_fd() with kernel_read_file_from_fd().

Although none of the upstreamed LSMs define a kernel_module_from_file
hook, IMA is called, based on policy, to prevent unsigned kernel modules
from being loaded by the original kernel module syscall and to
measure/appraise signed kernel modules.

The security function security_kernel_module_from_file() was called prior
to reading a kernel module.  Preventing unsigned kernel modules from being
loaded by the original kernel module syscall remains on the pre-read
kernel_read_file() security hook.  Instead of reading the kernel module
twice, once for measuring/appraising and again for loading the kernel
module, the signature validation is moved to the kernel_post_read_file()
security hook.

This patch removes the security_kernel_module_from_file() hook and security
call.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Luis R. Rodriguez <mcgrof@kernel.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
include/linux/fs.h
include/linux/ima.h
include/linux/lsm_hooks.h
include/linux/security.h
kernel/module.c
security/integrity/ima/ima_main.c
security/security.c