CVE-2026-80560 in Linux
Sumário
de VulDB • 26/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
openrisc: signal: não restaurar bits privilegiados de SR no sigreturn
A função restore_sigcontext() copia todo o registro de supervisão (SR) do frame de sinal e limpa apenas SPR_SR_SM antes que o valor seja recarregado no hardware SR (através de ESR e l.rfe) durante o retorno ao espaço de usuário. Todos os outros bits de SR permanecem sob controle do usuário.
Assim, uma tarefa não privilegiada pode retornar de um manipulador de sinal através de um sigframe manipulado que limpa SPR_SR_DME. Com a MMU de dados desativada, a CPU não realiza nenhuma tradução ou proteção nos acessos aos dados, permitindo que a tarefa obtenha acesso de leitura e gravação à memória física arbitrária, caracterizando uma escalada local de privilégios. Os bits SPR_SR_IME, SPR_SR_SUMRA, SPR_SR_LEE, SPR_SR_EPH e os bits de habilitação do cache são expostos da mesma forma. O regset GPR do ptrace já recusa qualquer alteração no SR exatamente por esse motivo.
Restaure apenas os bits de sinalização aritmética (F, CY, OV) a partir do frame de sinal e remova todos os bits de controle privilegiados do SR que o kernel salvou na entrada do sinal.
Verificado com qemu-system-or1k -M or1k-sim: antes desta correção, um PoC não privilegiado limpa SPR_SR_DME em rt_sigreturn e grava um marcador no endereço físico 0x03000000 (além dos mem=32M do kernel); após a correção, o mesmo PoC recebe SIGSEGV e a memória física permanece inalterada.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.