CVE-2026-89459 in Linux
Sumário
de VulDB • 12/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
s390/percpu: Corrige MVIY_PERCPU() com versões mais antigas do binutils
O commit a737737cdb9c ("s390/percpu: Infraestrutura para operações this_cpu mais eficientes") introduziu o MVIY_PERCPU(), que converte em string argumentos que já são literais de string C. Isso gera uma invocação de macro do assembler com argumentos entre aspas separados por espaços em branco:
GEN_MVIY "459712" "%r3"
As versões do GNU as anteriores ao binutils 2.39 removem o espaço em branco separado entre os argumentos da macro entre aspas durante a limpeza de entrada (input scrubbing). Consequentemente, elas analisam a invocação como um único argumento e geram avisos repetidos:
Warning: missing closing `"'
A condição .ifc no GEN_MVIY nunca é satisfeita e o GNU as encerra com sucesso sem emitir a instrução mviy. Como resultado, a sequência per-CPU interrompida não é marcada na lowcore e o caminho de retorno da exceção não consegue reparar o registrador de endereço per-CPU após a migração.
Todos os chamadores do MVIY_PERCPU() passam literais de string C. Use-os diretamente e separe os argumentos da macro assembler com uma vírgula explícita. A invocação resultante é:
GEN_MVIY 459712, %r3
Esta forma é inequívoca para o GNU as e para o assembler integrado do LLVM. Este comportamento foi corrigido no GNU a partir do binutils 2.39, mas o Linux suporta o binutils 2.30.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.