]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ima: Fix stack-out-of-bounds in is_bprm_creds_for_exec()
authorChris J Arges <carges@cloudflare.com>
Sun, 28 Dec 2025 03:18:54 +0000 (21:18 -0600)
committerMimi Zohar <zohar@linux.ibm.com>
Mon, 29 Dec 2025 13:28:50 +0000 (08:28 -0500)
commit377cae9851e8559e9d8b82a78c1ac0abeb18839c
tree5cb877384e4cc043d45d79a306f9157a934a0d37
parentf8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da
ima: Fix stack-out-of-bounds in is_bprm_creds_for_exec()

KASAN reported a stack-out-of-bounds access in ima_appraise_measurement
from is_bprm_creds_for_exec:

BUG: KASAN: stack-out-of-bounds in ima_appraise_measurement+0x12dc/0x16a0
 Read of size 1 at addr ffffc9000160f940 by task sudo/550
The buggy address belongs to stack of task sudo/550
and is located at offset 24 in frame:
  ima_appraise_measurement+0x0/0x16a0
This frame has 2 objects:
  [48, 56) 'file'
  [80, 148) 'hash'

This is caused by using container_of on the *file pointer. This offset
calculation is what triggers the stack-out-of-bounds error.

In order to fix this, pass in a bprm_is_check boolean which can be set
depending on how process_measurement is called. If the caller has a
linux_binprm pointer and the function is BPRM_CHECK we can determine
is_check and set it then. Otherwise set it to false.

Fixes: 95b3cdafd7cb7 ("ima: instantiate the bprm_creds_for_exec() hook")
Signed-off-by: Chris J Arges <carges@cloudflare.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
security/integrity/ima/ima.h
security/integrity/ima/ima_appraise.c
security/integrity/ima/ima_main.c