Uriel Fanelli

@uriel@x.keinpfusch.net
System Architect, platform Engineer mainly networking (both carrier and access network) and data fabric.Living in Germany, Hilden, NRW, where this instance is selfhosted. Non theistic Gnostic (with no "a"), so don't tell me about your gawd.Developer of Xenomorph, a small footprint AP server written in AdA/SPARK. Posting from it. (the picture of Stabby Possum is mine).
BLOG
https://keinpfusch.net
GIT
https://git.keinpfusch.net
Software
https://keinpfusch.net/software
XMPP
uriel@keinpfusch.net
MATRIX
@uriel:chat.keinpfusch.net
LULU
https://www.lulu.com/spotlight/urielfanelli
KDP
https://www.amazon.de/stores/Uriel-Fanelli/author/B0CS3Y7SXX
1831
Posts
859
Followers
1930
Following
Uriel Fanelli@uriel@x.keinpfusch.net2026-09-03T12:03:35Z
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.