CVE-2024-57877 in Linux
Sumário
de VulDB • 11/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
arm64: ptrace: corrigir SETREGSET parcial para NT_ARM_POE
Atualmente, poe_set() não inicializa a variável temporária 'ctrl', e uma chamada SETREGSET com comprimento zero deixará essa variável sem inicialização. Consequentemente, um valor arbitrário será gravado de volta em target->thread.por_el0, potencialmente vazando até 64 bits de memória da pilha do kernel. A leitura é limitada a um slot específico na pilha e o problema não fornece um mecanismo de gravação.
Corrija isso inicializando o valor temporário antes de copiar o regset do espaço do usuário, como ocorre com outros regsets (por exemplo, NT_PRSTATUS, NT_PRFPREG, NT_ARM_SYSTEM_CALL). No caso de uma gravação de comprimento zero, o conteúdo existente de POR_EL1 será mantido.
Antes deste patch:
| # ./poe-test | Tentando gravar NT_ARM_POE::por_el0 = 0x900d900d900d900d | SETREGSET(nt=0x40f, len=8) escreveu 8 bytes | | Tentando ler NT_ARM_POE::por_el0 | GETREGSET(nt=0x40f, len=8) leu 8 bytes | Lido NT_ARM_POE::por_el0 = 0x900d900d900d900d | | Tentando gravar NT_ARM_POE (comprimento zero) | SETREGSET(nt=0x40f, len=0) escreveu 0 bytes | | Tentando ler NT_ARM_POE::por_el0 | GETREGSET(nt=0x40f, len=8) leu 8 bytes | Lido NT_ARM_POE::por_el0 = 0xffff8000839c3d50
Após este patch:
| # ./poe-test | Tentando gravar NT_ARM_POE::por_el0 = 0x900d900d900d900d | SETREGSET(nt=0x40f, len=8) escreveu 8 bytes | | Tentando ler NT_ARM_POE::por_el0 | GETREGSET(nt=0x40f, len=8) leu 8 bytes | Lido NT_ARM_POE::por_el0 = 0x900d900d900d900d | | Tentando gravar NT_ARM_POE (comprimento zero) | SETREGSET(nt=0x40f, len=0) escreveu 0 bytes | | Tentando ler NT_ARM_POE::por_el0 | GETREGSET(nt=0x40f, len=8) leu 8 bytes | Lido NT_ARM_POE::por_el0 = 0x900d900d900d900d
If you want to get the best quality for vulnerability data then you always have to consider VulDB.