No kernel Linux, a seguinte vulnerabilidade foi resolvida. mm/memória: corrigir aviso espúrio quando descartar páginas privadas/exclusivas do dispositivo.
Os itens privados e exclusivos do dispositivo são suportados apenas para folios anônimos. Esta condição é testada em __migrate_device_pages() e make_device_exclusive() usando folio_test_anon(). No entanto, o caminho de ummap testa esta hipótese usando vma_is_anonymous().
Isto está errado porque enquanto VMAs anônimos só podem conter folios onde o folio_test_anon() é verdadeiro a relação oposta não mantém. Um folio para o qual o folio_test_anon() é verdadeiro não implica que o vma_is_anônimos() é verdadeiro. Tal condição pode ocorrer se, por exemplo, um folio fizer parte de um mapeamento privado com arquivo.
Neste caso, vma_is_anonymous() é falso, pois o mapeamento é retrocesso por arquivo, mas o folio_test_anon() pode ser verdadeiro, permitindo assim que os dispositivos migram o folio para a memória privada do dispositivo. Isto pode levar aos seguintes avisos espúrios durante o desmonte do processo:.
[ 772.737706 ] -------------[ cortar aqui ]----------- [ 772.739201 ] ATENÇÃO: mm/memory.c: 1754 no ummap_page_range.cod+ 0 x 26 / 0 x 18 a, CPU# 17: hmm- testes/ 2041 [ 772.742050 ] Módulos ligados em: test_hmm nvidia_uvm(O) nvidia(O) [ 772.743959 ] CPU: 17 UID: 0 PID: 2041 Comm: hmm- testes manchados: G W O 7.0.0 + # 387 PREEMPT( Full) [ 772.747104 ] Manchado: [W]=WARN, [O]=OOT_MODULE [ 772.748509 ] Nome do hardware: QEMU PC padrão (Q 35 + ICH 9, 2009 ), BIOS rel- 1.17.0 - 0 - gb 52 ca 86 e 094 d-preconstruído.qemu.org 04 / 01 / 2014 [ 772.752117 ] RIP: 0010:unmap_page_range.frid+ 0 x 26 / 0 x 18 a [ 772.753780 ] Código: 7 e fe ff ff ff 48 89 4 c 24 78 4 c 89 44 24 38 e 8 f 2 ff b 1 00 48 8 b 4 c 24 78 4 c 8 b 44 24 38 48 8 b 44 24 18 48 83 78 48 00 74 04 90 0 b 90 48 89 ca b 8 ff ff 37 00 48 c 1 x 03 48 c 1 e 0 2 a 80 3 c 02 [ 772.759602 ] RSP: 0018:ffff 888112607550 EFLAGS: 00010286 [ 772.761310 ] RAX: ffff 88811 bbf 4 dc 0 RBX: dffffc 0000000000 RCX: ffffea 03 e 9 bfffd 8 [ 772.763583 ] RDX: 1 ffffff 1102377 e 9 c 1 RSI: 0000000000000008 RDI: ffff 88811 bbf 4 e 08 [ 772.765914 ] RBP: 0000000000000006 R 08: ffff 8881059 f 7448 R 09: ffffed 10224 c 0 e 68 [ 772.768184 ] R 10: ffff 888112607347 R 11: 0000000000000001 R 12: 0000000000000001 [ 772.770461 ] R 13: ffffea 03 e 9 bfffc 0 R 14: ffff 888112607908 R 15: ffffea 03 e 9 bfffc 0 [ 772.772782 ] FS: 00007 f 327 caa 2780 ( 0000 ) GS:ffff 888427 b 7 d 000 ( 0000 ) knIGS: 0000000000000000 [ 772.775328 ] CS: 0010 DS: 0000 ES: 0000 CR 0: 0000000080050033 [ 772.777187 ] CR 2: 00007 f 327 ca 89000 CR 3: 00000001994 d 5000 CR 4: 00000000000006 f 0 [ 772.779135 ] Chamada de rastreamento: [ 772.779792 ] [ 772.780317 ]? dmirror_interval_invalidate+ 0 x 1 a 3 / 0 x 290 [teste_hmm] [ 772.781873 ]? vm_normal_page_pud+ 0 x 2 b 0 / 0 x 2 b 0 [ 772.782992 ]? __rwlock_init+ 0 x 150 / 0 x 150 [ 772.784006 ]? lock_release+ 0 x 216 / 0 x 2 b 0 [ 772.785008 ]? __mmu_notifier_invalidate_range_start+ 0 x 505 / 0 x 6 e 0 [ 772.786522 ]? lock_release+ 0 x 216 / 0 x 2 b 0 [ 772.787498 ]? unmap_single_vma+ 0 xb 6 / 0 x 210 [ 772.788573 ] unmap_vmas+ 0 x 27 d/ 0 x 520 [ 772.789506 ]? unmap_single_vma+ 0 x 210 / 0 x 210 [ 772.790607 ]? mas_update_gap.part. 0 + 0 x 620 / 0 x 620 [ 772.791834 ] unmap_region+ 0 x 19 e/ 0 x 350 [ 772.792769 ]? remover_vma+ 0 x 130 / 0 x 130 [ 772.793684 ]? mas_alloc_nodos+ 0 x 1 f 2 / 0 x 300 [ 772.794730 ] vms_complete_munmap_vmas+ 0 x 8 c 1 / 0 xe 20 [ 772.795926 ]? unmap_region+ 0 x 350 / 0 x 350 [ 772.796917 ] do_vmi_align_munmap+ 0 x 36 a/ 0 x 4 e 0 [ 772.798018 ]? lock_release+ 0 x 216 / 0 x 2 b 0 [ 772.799024 ]? vma_shrink+ 0 x 620 / 0 x 620 [ 772.799983 ] do_vmi_munmap+ 0 x 150 / 0 x 2 c 0 [ 772.800939 ] __vm_munmap+ 0 x 161 / 0 x 2 c 0 [ 772.801872 ]? expand_downwards+ 0 xd 60 / 0 xd 60 [ 772.802948 ]? clockevents_program_event+ 0 x 1 ef/ 0 x 540 [ 772.804217 ]? lock_release+ 0 x 216 / 0 x 2 b 0 [ 772.805158 ] __x 64 _sys_munmap+ 0 x 59 / 0 x 80 [ 772.805776 ] do_syscall_ 64 + 0 xfc/ 0 x 670 [ 772.806336 ]? irqentry_exit+ 0 xda/ 0 x 580 [ 772.806976 ] istry_SYSCALL_ 64 _após_hwframe+ 0 x 4 b/ 0 x 53 [ 772.807772 ] RIP: 0033: 0 x 7 f 327 cbb 2717 [ 772.808323 ] Código: 73 01 c 3 48 8 b 0 d f 9 76 0 d 00 f 7 d 8 64 89 01 48 83 c 8 ff c 3 66 2 e 0 f 1 f 84 00 00 00 00 00 0 f 1 f 44 00 00 b 8 0 b 00 00 00 0 f 05 3 d 01 f 0 ff --- truncado---.
Registro de aconselhamento: GHSA- 2 qhr- 9 xff-qp 48. Identificadores relacionados: CVE- 2026 - 64131.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 19 T 18: 31: 53.000 Z e lista a sua última modificação como 2026 - 08 - 13 T 15: 34: 13.000 Z.
Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H.
Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões.
Classificação e evidência: nenhum identificador CWE está listado. O registro contém 7 suporte de referências nestes tipos: AVISO, WEB.