android_kernel_sony_sdm845/security/integrity/ima
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Roberto Sassu 63125a4a45 ima: Directly assign the ima_default_policy pointer to ima_rules
commit 067a436b1b0aafa593344fddd711a755a58afb3b upstream.

This patch prevents the following oops:

[   10.771813] BUG: kernel NULL pointer dereference, address: 0000000000000
[...]
[   10.779790] RIP: 0010:ima_match_policy+0xf7/0xb80
[...]
[   10.798576] Call Trace:
[   10.798993]  ? ima_lsm_policy_change+0x2b0/0x2b0
[   10.799753]  ? inode_init_owner+0x1a0/0x1a0
[   10.800484]  ? _raw_spin_lock+0x7a/0xd0
[   10.801592]  ima_must_appraise.part.0+0xb6/0xf0
[   10.802313]  ? ima_fix_xattr.isra.0+0xd0/0xd0
[   10.803167]  ima_must_appraise+0x4f/0x70
[   10.804004]  ima_post_path_mknod+0x2e/0x80
[   10.804800]  do_mknodat+0x396/0x3c0

It occurs when there is a failure during IMA initialization, and
ima_init_policy() is not called. IMA hooks still call ima_match_policy()
but ima_rules is NULL. This patch prevents the crash by directly assigning
the ima_default_policy pointer to ima_rules when ima_rules is defined. This
wouldn't alter the existing behavior, as ima_rules is always set at the end
of ima_init_policy().

Cc: stable@vger.kernel.org # 3.7.x
Fixes: 07f6a79415 ("ima: add appraise action keywords and default rules")
Reported-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-20 10:24:19 +02:00
..
ima.h ima: Fix ima digest hash table key calculation 2020-06-20 10:24:19 +02:00
ima_api.c ima: always measure and audit files in policy 2018-12-01 09:44:26 +01:00
ima_appraise.c ima: re-introduce own integrity cache lock 2018-12-01 09:44:26 +01:00
ima_crypto.c ima: always return negative code for error 2019-10-17 13:42:09 -07:00
ima_fs.c ima: Fix return value of ima_write_policy() 2020-05-27 16:41:40 +02:00
ima_init.c ima: include pcr for each measurement log entry 2016-06-30 01:14:21 -04:00
ima_main.c ima: re-introduce own integrity cache lock 2018-12-01 09:44:26 +01:00
ima_mok.c IMA: Use the the system trusted keyrings instead of .ima_mok 2016-04-11 22:49:15 +01:00
ima_policy.c ima: Directly assign the ima_default_policy pointer to ima_rules 2020-06-20 10:24:19 +02:00
ima_queue.c ima: extend the measurement entry specific pcr 2016-06-30 01:14:22 -04:00
ima_template.c ima: separate 'security.ima' reading functionality from collect 2016-02-18 17:13:32 -05:00
ima_template_lib.c ima: separate 'security.ima' reading functionality from collect 2016-02-18 17:13:32 -05:00
ima_template_lib.h ima: wrap event related data to the new ima_event_data structure 2015-05-21 13:59:28 -04:00
Kconfig IMA: Use the the system trusted keyrings instead of .ima_mok 2016-04-11 22:49:15 +01:00
Makefile IMA: Use the the system trusted keyrings instead of .ima_mok 2016-04-11 22:49:15 +01:00