CVE-2026-53038

Source
https://cve.org/CVERecord?id=CVE-2026-53038
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-53038.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-53038
Downstream
Published
2026-06-24T16:29:45.086Z
Modified
2026-07-16T03:32:26.932904118Z
Summary
ima_fs: Correctly create securityfs files for unsupported hash algos
Details

In the Linux kernel, the following vulnerability has been resolved:

ima_fs: Correctly create securityfs files for unsupported hash algos

imatpmchip->allocatedbanks[i].cryptoid 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 hashalgoname[].

On 6.12.40 I observe the following read out-of-bounds in hashalgoname: ================================================================== BUG: KASAN: global-out-of-bounds in createsecurityfsmeasurement_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> dumpstacklvl+0x61/0x90 printreport+0xc4/0x580 ? kasanaddrtoslab+0x26/0x80 ? createsecurityfsmeasurementlists+0x396/0x440 kasanreport+0xc2/0x100 ? createsecurityfsmeasurementlists+0x396/0x440 createsecurityfsmeasurementlists+0x396/0x440 imafsinit+0xa3/0x300 imainit+0x7d/0xd0 initima+0x28/0x100 dooneinitcall+0xa6/0x3e0 kernelinitfreeable+0x455/0x740 kernelinit+0x24/0x1d0 retfromfork+0x38/0x80 retfromforkasm+0x11/0x20 </TASK>

The buggy address belongs to the variable: hashalgoname+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 sha3256, which isn't yet in tpmalgorithms: tpm tpm0: TPM with unsupported bank algorithm 0x0027

That's TPMALGSHA3_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 "tpmalg_<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/ asciiruntimemeasurements asciiruntimemeasurementstpmalg27 asciiruntimemeasurementssha1 asciiruntimemeasurementssha256 binaryruntimemeasurements binaryruntimemeasurementstpmalg27 binaryruntimemeasurementssha1 binaryruntimemeasurementssha256 policy runtimemeasurementscount violations

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53038.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
9fa8e76250082a45d0d3dad525419ab98bd01658
Fixed
081b557cb56e1cfa8d1619b2601b01c53e3f418c
Fixed
b6766b171a5c4c33b26ff6fec530cb798db1f75e
Fixed
88d4e89a39f0de07798ca3fd93bd1a9ea212a82e
Fixed
d7bd8cf0b348d3edae7bee33e74a32b21668b181

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-53038.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.10.0
Fixed
6.12.91
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.33
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.10

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-53038.json"