[BUG] tpm_tis_plat_probe -- maps a borrowed MEM resource by its own size, then reads at a FIXED 0xF00 offset
From: Farhad Alemi
Date: Fri Aug 28 2026 - 01:37:56 EST
Hello,
As part of the kernel research at ASU's SEFCOM
lab, we hit the crash below. Crash reports can be found here:
https://github.com/farhad-alemi/public_bug_reports/tree/main/154-tpm_tis-borrowed-resource-fixed-offset-read/
BUG: unable to handle page fault for address: ffffc90000a17310
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
Oops: Oops: 0000 [#1] SMP KASAN NOPTI
RIP: 0010:ioread32+0x1c/0x80
Call Trace:
ioread32+0x1c/0x80
tpm_tcg_read_bytes+0xec/0x270
tpm_tis_core_init+0x48c/0x1830
tpm_tis_init+0x420/0x540
tpm_tis_plat_probe+0x118/0x1a0
platform_probe+0xf9/0x190
really_probe+0x267/0xaf0
device_driver_attach+0xe0/0x1d0
bind_store+0x1d0/0x220
kernfs_fop_write_iter+0x3af/0x540
ksys_write+0x150/0x270
Kernel panic - not syncing: Fatal exception
Our reproducer.c is available upon request.
Happy to test a patch if that would help.
Regards,