CVE-2026-89763 in Linux
Riassunto
di VulDB • 11/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
KEYS: trusted: Correzione dell'ordine di teardown del TPM
trusted_tpm_exit() rilascia il riferimento al chip TPM e libera l'array dei digest prima di disregistrare il tipo di chiave attendibile. key_type_lookup() mantiene key_types_sem in lettura fino al termine delle operazioni sulla chiave, mentre unregister_key_type() la acquisisce in scrittura. Pertanto, fornisce il punto di sincronizzazione che deve precedere il teardown del backend.
L'ordine attuale consente questa interleaving:
CPU 0 CPU 1 trusted_tpm_exit() key_type_lookup("trusted") put_device(&chip->dev) trusted_tpm_seal() kfree(digests) pcrlock() unregister_key_type() tpm_pcr_extend(..., digests)
CPU 1 può di conseguenza dereferenziare l'array dei digest liberato. Il chip può anche essere rilasciato prima che le callback smettano di utilizzarlo.
KASAN ha segnalato:
BUG: KASAN: slab-use-after-free in tpm_pcr_extend+0x1f0/0x200 Read of size 2 at addr ffff88810872d000 by task poc/89 Call Trace: tpm_pcr_extend+0x1f0/0x200 pcrlock+0x42/0x70 [trusted]
trusted_tpm_seal+0x1b6/0x570 [trusted]
trusted_instantiate+0x293/0x340 [trusted]
__key_instantiate_and_link+0xb2/0x2b0 __key_create_or_update+0x61e/0xb50 __do_sys_add_key+0x1b8/0x310 Allocated by task 88: __kmalloc_noprof+0x1a7/0x490 do_one_initcall+0xa1/0x390 do_init_module+0x2df/0x840 Freed by task 90: kfree+0x131/0x3c0 trusted_tpm_exit+0x59/0xa0 [trusted]
__do_sys_delete_module+0x346/0x510
Spostare unregister_key_type() prima di rilasciare le risorse. Questo impedisce nuove lookup e attende il completamento delle operazioni sulla chiave in corso prima che lo stato del backend venga distrutto.
If you want to get best quality of vulnerability data, you may have to visit VulDB.