Arm Memory Tagging Extension (MTE): Аппаратная поддержка обнаружения пространственных и временных ошибок памяти в Armv8.5-A и выше (Чжун Цзяцзюнь)
Arm Memory Tagging Extension (MTE) — аппаратное расширение Armv8.5-A (и Armv9), реализующее механизм lock-and-key для безопасности памяти. Каждые 16 байт памяти получают 4-битный allocation tag (замок), а указатели — logical tag (ключ) в верхнем байте (Top Byte Ignore). При load/store в Normal Tagged Memory процессор автоматически проверяет совпадение тегов и вызывает исключение при несоответствии. MTE поддерживает три режима: Synchronous (SYNC — точное обнаружение), Asynchronous (ASYNC — низкий overhead) и Asymmetric (ASYMM). Это позволяет эффективно выявлять buffer overflow, use-after-free, use-after-return и другие ошибки памяти с минимальными изменениями в аллокаторе и ОС.
Источники: