CVE-2022-50675 in Linux
Сводка
по VulDB • 10.06.2026
В ядре Linux устранена следующая уязвимость:
arm64: mte — избежать установки флага PG_mte_tagged, если теги не очищены или не восстановлены.
До коммита 69e3b846d8a7 («arm64: mte: Sync tags for pages where PTE is untagged») функция mte_sync_tags() вызывалась только для записей, помеченных как pte_tagged() (те, которые отображены с использованием PROT_MTE). Следовательно, mte_sync_tags() могла безопасно использовать test_and_set_bit(PG_mte_tagged, &page->flags), не устанавливая случайно PG_mte_tagged на странице без тегов.
Указанный выше коммит был необходим, поскольку гостевые системы могут включать MTE без какого-либо контроля на уровне отображения stage 2 или отображения PROT_MTE в VMM (Virtual Machine Monitor). Однако побочным эффектом стало то, что любой странице с PTE, который выглядел как swap (или миграция), автоматически устанавливался флаг PG_mte_tagged. Последующее копирование страницы (например, при миграции) копировало теги на страницу назначения даже в том случае, если эти теги принадлежали KASAN.
Эта проблема маскировалась вызовом page_kasan_tag_reset(), введенным в коммите e5b8d9218951 («arm64: mte: reset the page tag in page->flags»). Когда этот коммит был отменен (20794545c146), KASAN начал сообщать об ошибках доступа, поскольку переопределяющие теги в странице не совпадали с исходными флагами страницы (с 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]
Переместите установку бита PG_mte_tagged из mte_sync_tags() в фактическое место, где теги очищаются (mte_sync_page_tags()) или восстанавливаются (mte_restore_tags()).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.