In the Linux kernel, the following vulnerability has been resolved:
ima_fs: Correctly create securityfs files for unsupported hash algos
ima_tpm_chip->allocated_banks[i].crypto_id is initialized to HASH_ALGO__LAST if the TPM algorithm is not supported. However there are places relying on the algorithm to be valid because it is accessed by hash_algo_name[].
On 6.12.40 I observe the following read out-of-bounds in hash_algo_name: ================================================================== BUG: KASAN: global-out-of-bounds in create_securityfs_measurement_lists+0x396/0x440 Read of size 8 at addr ffffffff83e18138 by task swapper/0/1
CPU: 4 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.40 #3 Call Trace: <TASK> dump_stack_lvl+0x61/0x90 print_report+0xc4/0x580 ? kasan_addr_to_slab+0x26/0x80 ? create_securityfs_measurement_lists+0x396/0x440 kasan_report+0xc2/0x100 ? create_securityfs_measurement_lists+0x396/0x440 create_securityfs_measurement_lists+0x396/0x440 ima_fs_init+0xa3/0x300 ima_init+0x7d/0xd0 init_ima+0x28/0x100 do_one_initcall+0xa6/0x3e0 kernel_init_freeable+0x455/0x740 kernel_init+0x24/0x1d0 ret_from_fork+0x38/0x80 ret_from_fork_asm+0x11/0x20 </TASK>
The buggy address belongs to the variable: hash_algo_name+0xb8/0x420
Memory state around the buggy address: ffffffff83e18000: 00 01 f9 f9 f9 f9 f9 f9 00 01 f9 f9 f9 f9 f9 f9 ffffffff83e18080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffffffff83e18100: 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 00 05 f9 f9 ^ ffffffff83e18180: f9 f9 f9 f9 00 00 00 00 00 00 00 04 f9 f9 f9 f9 ffffffff83e18200: 00 00 00 00 00 00 00 00 04 f9 f9 f9 f9 f9 f9 f9 ==================================================================
Seems like the TPM chip supports sha3_256, which isn't yet in tpm_algorithms: tpm tpm0: TPM with unsupported bank algorithm 0x0027
That's TPM_ALG_SHA3_256 == 0x0027 from "Trusted Platform Module 2.0 Library Part 2: Structures", page 51 [1]. See also the related U-Boot algorithms update [2].
Thus solve the problem by creating a file name with "_tpm_alg_<ID>" postfix if the crypto algorithm isn't initialized.
This is how it looks on the test machine (patch ported to v6.12 release): # ls -1 /sys/kernel/security/ima/ ascii_runtime_measurements ascii_runtime_measurements_tpm_alg_27 ascii_runtime_measurements_sha1 ascii_runtime_measurements_sha256 binary_runtime_measurements binary_runtime_measurements_tpm_alg_27 binary_runtime_measurements_sha1 binary_runtime_measurements_sha256 policy runtime_measurements_count violations
[1]: https://trustedcomputinggroup.org/wp-content/uploads/Trusted-Platform-Module-2.0-Library-Part-2-Version-184_pub.pdf [2]: https://lists.denx.de/pipermail/u-boot/2024-July/558835.html
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.18-toolsUpgrade kernel6.18Upgrade kernel6.18-debuginfoUpgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.18-headersUpgrade kernel6.18-modules-extraUpgrade kernel6.18-develUpgrade kernel-livepatch-6.18.33-63.124Upgrade perf6.18-debuginfoUpgrade python3-perf6.18-debuginfoUpgrade perf6.18Upgrade bpftool6.18-debuginfoUpgrade python3-perf6.18Upgrade kernel6.18-tools-develUpgrade kernel6.18-tools-debuginfoUpgrade bpftool6.18Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.18-debuginfo-common-x86_64 | Jul 8, 2026 | Jun 24, 2026 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Ubuntu | — | Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-oem-24.04bUpgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-7.0.0-1009-awsUpgrade linux-image-genericUpgrade linux-image-gke-64kUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-oem-24.04dUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-azureUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-gcpUpgrade linux-image-7.0.0-1009-oemUpgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-generic-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-raspiUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-oem-26.04Upgrade linux-image-7.0.0-28-genericUpgrade linux-image-azure-fde-7.0Upgrade linux-image-ibm-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-oracle-7.0Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-nvidiaUpgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-azure-7.0Upgrade linux-image-oem-24.04aUpgrade linux-image-gcp-7.0Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-ibmUpgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-generic-7.0Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-64k-7.0Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-realtimeUpgrade linux-image-aws-64k-7.0Upgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-nvidia-bosUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-oem-24.04cUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-gke-64k-7.0Upgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-nvidia-64kUpgrade linux-image-gke-7.0Upgrade linux-image-gcp-64k-7.0Upgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-realtime-7.0Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-awsUpgrade linux-image-oracleUpgrade linux-image-oem-24.04Upgrade linux-image-realtime-64kUpgrade linux-image-gcp-64kUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-virtualUpgrade linux-image-oem-26.04aUpgrade linux-image-gkeUpgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-raspi-7.0Upgrade linux-image-oem-7.0Upgrade linux-image-aws-64kUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-7.0.0-1016-nvidia | Jul 20, 2026 | Jun 24, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub