CVE-2026-43073 in Linuxinformação

Sumário

de VulDB • 20/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

x86-64: renomear a função '__copy_user_nocache()', que possui um nome enganoso

Esta função era uma aula magistral de má nomenclatura, por várias razões históricas.

Ela afirmava ser uma cópia de usuário não cacheada. Na verdade, ela é _nem_ uma coisa _nem_ outra. É uma rotina especializada de cópia de memória que utiliza stores não temporais para o destino (mas não para a origem) e que realiza tratamento de exceções para acessos tanto à origem quanto ao destino.

Observe também que, embora funcione para destinos não alinhados, quaisquer partes não alinhadas (seja no início ou no final) não utilizarão stores não temporais, pois apenas palavras (words) e quadpalavras (quadwords) podem ser não temporais no x86.

O tratamento de exceções significa que ela _pode_ ser usada para acessos ao espaço de usuário, mas não de forma isolada – ela precisa de toda a lógica normal de "início do acesso ao espaço de usuário" ao seu redor.

No entanto, tipicamente, o acesso ao espaço de usuário seria a origem, e não o destino não temporal. Essa era a intenção original desta função, onde o destino era algum alvo de memória persistente frágil que precisava de stores não temporais para capturar exceções de verificação de máquina (machine check exceptions) de forma síncrona e lidar com elas de maneira graciosa.

Assim, o nome pouco descritivo: um caso de uso era copiar do espaço de usuário para um buffer de kernel não cacheado. No entanto, os usuários existentes são uma mistura desse caso de uso pretendido e alguns drivers aleatórios que simplesmente o utilizavam como um ajuste de desempenho.

Alguns desses drivers aleatórios então abusaram ativamente da versão de cópia de usuário (com STAC/CLAC e tudo mais) para fazer cópias de kernel sem se importar com o tratamento de exceções, _apenas_ pelo destino não temporal.

Renomeá-la é um primeiro passo pequeno para torná-la razoavelmente sensata e alterar o protótipo para ser mais normal: ela não aceita um ponteiro de usuário a menos que o chamador tenha feito a conversão adequada, e o tamanho do argumento é o tamanho_t completo (ela ainda não copiará mais de 4GB de uma vez, mas também não há motivo para truncar silenciosamente o argumento de tamanho no chamador).

Finalmente, use esta função agora com nome sensato no código NTB, que abusava de uma versão de cópia de usuário (com STAC/CLAC e tudo mais) desta interface, apesar de ela não ser realmente uma cópia de usuário.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsável

Linux

Reservar

01/05/2026

Divulgação

05/05/2026

Moderação

aceite

Entrada

VDB-361209

CPE

pronto

EPSS

0.00013

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!