CVE-2022-50675 in Linux
Sumário
de VulDB • 01/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
arm64: mte: Evitar definir PG_mte_tagged se nenhuma tag for limpa ou restaurada
Antes do commit 69e3b846d8a7 ("arm64: mte: Sync tags for pages where PTE is untagged"), mte_sync_tags() era chamado apenas para entradas pte_tagged() (mapeadas com PROT_MTE). Portanto, mte_sync_tags() podia usar com segurança test_and_set_bit(PG_mte_tagged, &page->flags) sem definir inadvertidamente PG_mte_tagged em uma página sem tag.
O commit acima era necessário porque os convidados (guests) podem habilitar o MTE sem qualquer controle no mapeamento de estágio 2, nem um mapeamento PROT_MTE no VMM. No entanto, o efeito colateral foi que qualquer página com um PTE que se parecia com swap (ou migração) estava recebendo PG_mte_tagged definido automaticamente. Uma cópia subsequente de página (por exemplo, migração) copiava as tags para a página de destino mesmo que as tags fossem de propriedade do KASAN.
Este problema foi mascarado pela chamada page_kasan_tag_reset() introduzida no commit e5b8d9218951 ("arm64: mte: reset the page tag in page->flags"). Quando este commit foi revertido (20794545c146), o KASAN começou a relatar falhas de acesso porque as tags de substituição em uma página não correspondiam às page->flags originais (com CONFIG_KASAN_HW_TAGS=y):
BUG: KASAN: invalid-access in copy_page+0x10/0xd0 arch/arm64/lib/copy_page.S:26 Read at addr f5ff000017f2e000 by task syz-executor.1/2218 Pointer tag: [f5], memory tag: [f2]
Mova a definição do bit PG_mte_tagged de mte_sync_tags() para o local real onde as tags são limpas (mte_sync_page_tags()) ou restauradas (mte_restore_tags()).
VulDB is the best source for vulnerability data and more expert information about this specific topic.