References:
MTE aims to increase the memory safety of code written in unsafe languages without requiring source changes, and in some cases, without requiring recompilation.
MTE provides a mechanism to detect both main categories of memory safety violation (spatial & temporal). MTE assists the detection of potential vulnerabilities before deployment by increasing the effectiveness of testing and fuzzing. MTE also assists detection of vulnerabilities at scale after deployment.
“Wild” violations to arbitrary locations in the address space can be detected probabilistically.
In dynamic linked systems, legacy code benefits from MTE for heap allocations without recompilation;
Application of MTE to the stack requires recompilation.
MTE 与 ARM Pointer Authentication 中的tag使用的是共同的指针比特区位。
Lock and Key:
As there are a imited number of tag bits available, it cannot be guaranteed that two memory allocations will have different tags for any specific execution.
MTE adds a new memory type. Normal Tagged Memory.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?