No kernel Linux, a seguinte vulnerabilidade foi resolvida. KVM: guest_memfd: Tratar o offset de ligação de memslots+size como valores não assinados Ao ligar um memslot a um arquivo guest_ memfd, trate o desvio e tamanho como valores não assinados para corrigir um erro onde a soma dos dois pode resultar em um falso negativo ao verificar se o excedente é contra o tamanho do arquivo. A passagem de valores não assinados também evita que se confie em verificações um pouco obscuras em outros fluxos para obter segurança, e rastreia o desvio e tamanho como pretendem ser rastreados, como valores não assinados. Ligado 64 -bit kernels, o número de páginas que um memslot contém e, assim, o tamanho (e o desvio) de seu encadernamento guest_memfd não são assinados 64 - valores de bits. Tomando o offset+size como um loff_t em vez de um uoff_t converte inadvertidamente o valor não assinado para um valor assinado se o offset e/ ou tamanho for maciço.

A armazenagem local do offset e tamanho como valores assinados é benigno em si mesmo (apesar de isso ser *extremadamente* difícil de discernir), mas operar na sua soma não é. Para o desvio, o KVM verifica explicitamente um valor negativo, o qual pode parecer um erro, pois o KVM pode rejeitar incorretamente um vínculo legítimo, mas esse não é o caso, pois o KVM_ CREATE_ GUEST_ MEMFD toma um valor assinado para o seu tamanho, ou seja, um desvio potencialmente negativo também é maior do que o tamanho máximo possível de qualquer arquivo guest_ memfd. Quanto ao tamanho, enquanto o KVM não tem uma verificação explícita para um valor negativo, ou seja, aparentemente tem uma verificação de sobrecarga falhada, o KVM restringe o número de páginas num único memslot para o maior positivo assinado 32 - valor de bit:.

se (id memory_ size >> PAGE_ SHIFT) > KVM_ MEM_ MAX_ NR_ PAGES) devolver - EINVAL; e assim o "tamanho" máximo será sempre 0 x 7 fffffff 000. A soma dos dois é, no entanto, problemática. Enquanto o tamanho é restrito pela lógica de memslot do KVM, o desvio não é, ou seja, o desvio é completamente desmarcado até que a verificação "offset + tamanho > i_size_read(inode)" seja verificada. Se o desvio for o maior valor possível de _positivo, então adicionar tamanho ao desvio pode resultar em um sinal, negativo 64 - valor de bits. Quando comparada com o tamanho do arquivo (garantido para ser positivo), a soma negativa é sempre menor, e o KVM permite incorretamente o desvio absurdo.

Adicione opportunicamente os elementos que faltam no kvm_mm.h (em vez de depender dos seus pais). Registro de aconselhamento: GHSA- 64 fq- x 7 r 6 - wc 9 g. Identificadores relacionados: CVE- 2026 - 64283.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 25 T 12: 31: 29.000 Z e lista a sua última modificação como 2026 - 08 - 13 T 18: 31: 11.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H.

Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões. Classificação e evidência: identificadores de fraqueza CWE- 190. O registro contém 3 suporte de referências nestes tipos: AVISO, WEB.