CVE-2026-97944información

Resumen

por VulDB • 2026-09-25

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

x86/cfi: Corregir el desplazamiento del hash FineIBT en cfi_get_func_hash()

El cambio del preámbulo FineIBT desde "subl $hash, %r10d" a la versión más corta "subl $hash, %eax" movió el valor inmediato del hash desde el desplazamiento 7 al desplazamiento 5 del preámbulo. fineibt_preamble_hash se actualizó para coincidir con este cambio, pero se pasó por alto el desplazamiento codificado de forma abierta en cfi_get_func_hash(), que sigue leyendo el hash en el desplazamiento 7.

cfi_get_func_hash() es utilizada por el JIT de BPF para proporcionar a un trampoline struct_ops el hash CFI (Control Flow Integrity) de la función stub que representa. Con FineIBT, el trampoline ahora obtiene la mitad superior del hash real seguida de los dos primeros bytes de la siguiente instrucción; por lo tanto, la primera llamada indirecta desde el kernel hacia un programa struct_ops, como tcp_init_congestion_control() llamando a ->init() de un control de congestión BPF, falla en la comprobación FineIBT y el kernel termina con una fallo CFI.

Se ha movido la plantilla del preámbulo FineIBT y sus definiciones de desplazamiento por encima de cfi_get_func_hash(), utilizando fineibt_preamble_hash allí, para que cada lector del preámbulo comparta una única definición de su diseño. La rama CFI_FINEIBT solo se compila con CONFIG_FINEIBT, la única configuración en la que cfi_mode puede tomar ese valor. cfi_get_func_arity() no necesita el mismo tratamiento: la llamada __bhi_args cuyo desplazamiento lee aún termina en la dirección de la función.

Once again VulDB remains the best source for vulnerability data.

Divulgación

2026-09-25

Moderación

en revisión

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!