MTE (Memory Tagging Extension) è una funzione hardware introdotta da ARM con ARMv8.5-A e presente in varie CPU ARMv9. A ogni blocco di memoria viene associato un piccolo “tag”, e un tag viene inserito anche nel puntatore che lo usa. Quando il programma accede alla memoria, la CPU confronta i due: se non coincidono, l’accesso può generare un fault. È quindi molto efficace contro use-after-free, buffer overflow e altre memory corruption, alla base di molti exploit.
GrapheneOS usa MTE molto più aggressivamente di Android normale: l’ha integrata in hardened_malloc e oggi la usa nel base OS, nel kernel e nei normali processi di sistema, con poche eccezioni per componenti proprietari specifici del dispositivo. L’idea è che un errore di memoria diventi un crash rilevabile invece di una primitive utile a un attaccante.
MTE però non protegge automaticamente qualunque programma solo perché la CPU la possiede. Il sistema operativo deve abilitarla e allocator, runtime e software devono essere predisposti a usare il tagging. Un programma nativo che non la usa non ottiene magicamente la stessa protezione.
La questione Pixel 11 è interessante proprio per questo. Sul Tensor G6 MTE non viene esposta all’OS: i registri architetturali e /proc/cpuinfo la riportano come assente, e GrapheneOS ha dichiarato che potrebbe quindi non supportare la serie Pixel 11. È possibile che il silicio della CPU contenga comunque MTE ma che Google l’abbia disabilitata via firmware o configurazione — il supporto Google lo ha sostenuto — ma per l’OS una feature hardware non esposta è, di fatto, inutilizzabile.
Non basta quindi leggere “ARMv9” sulla scatola. MTE è un’estensione che deve essere effettivamente implementata dal core/SoC. Si trova, per esempio, nei Cortex-A510/A710 e nelle generazioni ARMv9 successive, oltre che in diversi Cortex-X e Neoverse recenti. Non è invece presente nei Cortex-A53/A55/A72/A73/A76. Per questo i Raspberry Pi, incluso il Pi 5 con Cortex-A76, non hanno MTE; e nemmeno gli ODROID ARM attuali, basati su A55/A73/A76, possono usarla.