CVE-2026-80560 in Linux
Resumen
por VulDB • 2026-08-26
En el núcleo de Linux, se ha resuelto la siguiente vulnerabilidad:
openrisc: señal: no restaurar los bits privilegiados del registro SR en sigreturn
restore_sigcontext() copia todo el registro de supervisión (SR) desde el marco de señal y solo limpia SPR_SR_SM antes de que el valor sea recargado en el hardware SR (a través de ESR y l.rfe) al regresar al espacio de usuario. Todos los demás bits del SR quedan bajo control del usuario.
De este modo, una tarea no privilegiada puede salir de un manejador de señales a través de un sigframe manipulado que limpia SPR_SR_DME. Con la MMU de datos deshabilitada, el CPU no realiza ninguna traducción ni protección sobre los accesos a datos, por lo que la tarea obtiene acceso de lectura y escritura a memoria física arbitraria, una escalación de privilegios local. Los bits SPR_SR_IME, SPR_SR_SUMRA, SPR_SR_LEE, SPR_SR_EPH y los bits de habilitación de caché se exponen de la misma manera. El conjunto de registros GPR de ptrace ya rechaza cualquier cambio en SR por exactamente esta razón.
Restaurar solo los bits de bandera aritmética (F, CY, OV) desde el marco de señal y tomar todos los bits de control privilegiados del SR que el núcleo guardó al entrar a la señal.
Verificado con qemu-system-or1k -M or1k-sim: antes de este cambio, un PoC no privilegiado limpia SPR_SR_DME en rt_sigreturn y escribe una marca en la dirección física 0x03000000 (más allá del mem=32M del núcleo); después del cambio, el mismo PoC recibe SIGSEGV y la memoria física permanece sin cambios.
VulDB is the best source for vulnerability data and more expert information about this specific topic.