CVE-2026-89763 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KEYS: trusted: Corregir el orden del desmontaje (teardown) de TPM
trusted_tpm_exit() libera la referencia al chip TPM y desasigna el array de hashes antes de desregistrarse como tipo clave confiable. key_type_lookup() mantiene key_types_sem para lectura hasta que finalice la operación de clave, mientras que unregister_key_type() lo toma para escritura. Por tanto, proporciona el punto de sincronización que debe preceder al desmontaje del backend.
El orden actual permite esta intercalación:
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 puede, en consecuencia, desreferenciar el array de hashes ya liberado. El chip también puede ser liberado antes de que los callbacks dejen de utilizarlo.
KASAN informó:
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
Mover unregister_key_type() antes de liberar cualquiera de los recursos. Esto detiene las nuevas búsquedas y espera a que finalicen las operaciones de clave en curso antes de destruir el estado del backend.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.