CVE-2026-53038: Linux Kernel IMA Out-of-Bounds Read Denial of Service
A vulnerability in the Linux kernel's IMA (Integrity Measurement Architecture) subsystem can trigger a memory safety bug when the kernel attempts to look up hash algorithm names for TPM banks that the system doesn't recognize. Specifically, when a TPM chip reports support for a hash algorithm (like SHA3-256) that the kernel doesn't yet have in its algorithm table, the code sets an invalid index and later uses that index to access a global array of algorithm names, reading past the array bounds. This causes a kernel crash (denial of service) during system initialization. The issue is particularly relevant as newer TPM specifications include algorithms not yet reflected in all kernel versions.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-125
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-14
NVD description (verbatim)
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
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53038 is an out-of-bounds read in the Linux kernel's IMA securityfs initialization code. When a TPM chip's crypto_id for an unsupported hash algorithm is set to HASH_ALGO__LAST (an invalid sentinel value), the create_securityfs_measurement_lists() function passes this value directly to hash_algo_name[], which is a statically allocated array with a fixed upper bound. KASAN (Kernel Address Sanitizer) detects this as a global buffer over-read. The root cause is that TPM algorithms (particularly TPM_ALG_SHA3_256, value 0x0027) may be present in newer TPM 2.0 implementations but not yet enumerated in the kernel's hash algorithm definitions. The patch resolves this by gracefully handling unsupported algorithms by creating securityfs files with a fallback naming scheme (_tpm_alg_<ID>) rather than attempting to dereference the algorithm name array.
Business impact
This vulnerability causes kernel panic during initialization on systems with newer TPM 2.0 chips that support algorithms not yet recognized by the kernel version in use. For organizations relying on IMA for kernel integrity measurement and attestation, this bug can prevent systems from booting or functioning, resulting in availability loss. The denial of service occurs at boot time, making it a blocking issue for deployment of affected kernel versions on hardware with advanced TPM implementations. However, the impact is limited to local access and requires the system to already be in a state where the TPM reports an unsupported algorithm.
Affected systems
The vulnerability affects the Linux kernel across versions that include the vulnerable IMA securityfs code path. Based on the description, the issue was observed on kernel 6.12.40. The vulnerability is triggered specifically on systems equipped with TPM 2.0 chips that support newer hash algorithms (such as SHA3-256) that are not yet included in the kernel's algorithm enumeration. This is most relevant for newer hardware or systems updated with the latest TPM firmware that supports additional algorithms. Older systems with TPM 1.2 or TPM 2.0 chips supporting only traditional algorithms (SHA-1, SHA-256) are unaffected.
Exploitability
This is not a remotely exploitable vulnerability. It requires local access and manifests as a kernel panic triggered automatically during the boot process when the vulnerable code path is executed. There is no user interaction required, and no privilege escalation component—the crash occurs in kernel initialization before normal access controls are established. An attacker cannot weaponize this for remote code execution. The practical exploitability is limited: an attacker with the ability to provision hardware with TPM firmware supporting unrecognized algorithms could force a denial of service on a target system, but this is a niche scenario. The real-world impact is primarily as a stability issue for legitimate administrators deploying on newer hardware.
Remediation
The Linux kernel maintainers have resolved this by modifying the securityfs file creation logic to detect when an algorithm is unsupported (crypto_id == HASH_ALGO__LAST) and create securityfs measurement list files with a fallback naming convention (_tpm_alg_<hex_id>) rather than attempting to look up the invalid algorithm name in the hash_algo_name array. This allows the system to boot successfully and still expose the TPM's reported banks via securityfs, albeit with generic names. Organizations should apply kernel patches that include this fix. The fix is backwards compatible and does not require changes to userspace tools, though tools that parse /sys/kernel/security/ima/ should be aware that file names may include the _tpm_alg_* pattern for newer algorithms.
Patch guidance
Apply the kernel patch that resolves the out-of-bounds array access in the IMA securityfs initialization. This fix has been integrated into mainline kernel development following the 6.12.40 release. Verify the specific kernel versions in your distribution's advisory for exact patch versions. The patch modifies create_securityfs_measurement_lists() and related functions to check algorithm validity before array access. No kernel command-line parameters or configuration changes are required to benefit from this patch. A kernel reboot is necessary to activate the patched code.
Detection guidance
Systems running the vulnerable kernel on hardware with newer TPM chips may exhibit kernel panics or boot failures with KASAN output showing 'global-out-of-bounds in create_securityfs_measurement_lists'. Check kernel logs (dmesg, journalctl) for the specific KASAN report referencing hash_algo_name array access. TPM kernel log messages stating 'TPM with unsupported bank algorithm 0x0027' (or similar) preceding the crash are a strong indicator. Monitor system boot success rates on new hardware deployments; unexpected failures during initialization warrant investigation. Once patched, verify that /sys/kernel/security/ima/ contains securityfs files; the presence of files with _tpm_alg_* names indicates the graceful fallback is working.
Why prioritize this
Prioritize patching systems that will be deployed on newer hardware with TPM 2.0 chips, or those receiving firmware updates that enable additional TPM algorithms. While the CVSS score is moderate (5.5 MEDIUM), the practical severity for affected systems is high because it blocks boot. Organizations with strict uptime requirements and those managing large fleets of similar hardware should prioritize this fix to prevent deployment blockers. Systems already running without TPM support or with older TPM hardware supporting only legacy algorithms can be deprioritized. The fix is safe and non-disruptive, making it suitable for immediate application upon release.
Risk score, explained
CVSS 3.1 Score: 5.5 (MEDIUM). The vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H reflects: Attack Vector Local (kernel panic requires local system access/execution), Access Complexity Low (triggered automatically during boot on affected hardware), Privileges Required Low (occurs during kernel initialization before normal privilege checks), User Interaction None (automatic), Scope Unchanged (impact limited to the affected system), Confidentiality None (no information disclosure), Integrity None (no data corruption), Availability High (kernel crash/denial of service). The score appropriately reflects a denial-of-service impact without escalation potential, moderated by the local-only attack vector.
Frequently asked questions
Will this vulnerability affect all Linux systems?
No. The vulnerability only manifests on systems running an affected kernel version AND equipped with a TPM 2.0 chip that reports support for hash algorithms not yet recognized by that kernel version (such as SHA3-256). Most systems in production today use older TPM firmware or no TPM at all and are unaffected.
Is this a security vulnerability or a stability bug?
It is classified as a security vulnerability (CVE-2026-53038) primarily because it is an out-of-bounds memory access, which violates memory safety guarantees. However, the practical impact is a denial of service (kernel panic) rather than information disclosure or code execution. It is not exploitable for privilege escalation or remote attacks.
What happens after I apply the patch?
After patching and rebooting, systems with unsupported TPM algorithms will continue to boot successfully. The securityfs interface (/sys/kernel/security/ima/) will show measurement files with names like 'ascii_runtime_measurements_tpm_alg_27' for unrecognized algorithms instead of crashing. This allows IMA to function correctly while transparently handling future TPM algorithm additions.
Do I need to change any kernel configuration or userspace tools?
No configuration changes are required. The patch is fully backwards compatible. If you have userspace tools that parse the ima/ securityfs directory, you may want to verify they handle the new _tpm_alg_* file naming pattern gracefully, but most monitoring and attestation tools should continue to work without modification.
This analysis is based on publicly available vulnerability data and the kernel patch description as of the publication date. CVSS scores, affected versions, and remediation guidance should be verified against your distribution's official security advisories and the Linux kernel security team's announcements. SEC.co does not provide binding technical support; organizations should test patches in a controlled environment before production deployment. The vulnerability is not currently tracked in the CISA KEV catalog, but this status may change. Organizations should monitor their specific kernel and distribution vendor channels for definitive patch availability and deployment timelines. Source: NVD (public-domain), retrieved 2026-07-31. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10998MEDIUMChrome Media Out-of-Bounds Memory Read Vulnerability
- CVE-2026-11004MEDIUMChrome ANGLE Out-of-Bounds Read Memory Disclosure
- CVE-2026-11006MEDIUMChrome Out-of-Bounds Read in Dawn Graphics API—Urgent Patch Required
- CVE-2026-11051MEDIUMChrome ANGLE Out-of-Bounds Read on Linux – Patch Guide
- CVE-2026-11075MEDIUMOut-of-Bounds Read in Chrome V8 Engine – Memory Disclosure Vulnerability
- CVE-2026-11090MEDIUMChrome ANGLE Memory Leak Enables Cross-Origin Data Theft
- CVE-2026-11096MEDIUMChrome WebRTC Out-of-Bounds Read
- CVE-2026-11160MEDIUMChrome Linux Out-of-Bounds Memory Read Vulnerability