upvote
Not only does M5 have MTE, it has an "enhanced" version of it.

"We conducted a deep evaluation and research process to determine whether MTE, as designed, would meet our goals for hardware-assisted memory safety. Our analysis found that, when employed as a real-time defensive measure, the original Arm MTE release exhibited weaknesses that were unacceptable to us, and we worked with Arm to address these shortcomings in the new Enhanced Memory Tagging Extension (EMTE) specification, released in 2022."[1]

The enhancements add:[2]

* Canonical tag checking

* Reporting of all non-address bits on a fault

* Store-only Tag checking

* Memory tagging with Address tagging disabled

[1] https://security.apple.com/blog/memory-integrity-enforcement...

[2] https://developer.arm.com/documentation/109697/0100/Feature-...

reply
It's MTE4. The "enhancements" mostly make it easier for Apple developers to hack XNU into continuing to operate with MTE.
reply
It's more like MTE was originally intended as a debugging tool (like ASan), and MTE4 makes it work as a security hardening measure.
reply
Do you know if macos has the changes needed to make use of MIE with M5? I assume that it has with iPadOS.
reply
do you have a citation for M5 having MTE?
reply
I did primary research. I just bought an M5 Mac and confirmed by doing:

  $ sysctl -a | grep MTE4
  hw.optional.arm.FEAT_MTE4: 1
reply
Thank you for posting that. I was pretty sure the M5 was going to ship with MTE, but the last time I checked the documents, they still hadn't updated them (nor any mention of M5 having Apple10 in the metal feature tables). Some big features there that makes me want to upgrade!
reply
It does.
reply
Compiler/runtime support via clang and llvm should help I hope.

I'd like to get to the point where web browsers (for example) always run with memory-safe compilation and runtime features on every platform. OS kernels would be nice as well.

It will be nice to see more OSes ship with memory safety on by default for everything. Maybe OpenBSD is next?

reply
As mentioned elsewhere, Solaris SPARC and Linux on SPARC since 2015.
reply
sel4 ships with memory safety on by default.
reply
Pixels with GrapheneOS also use MTE for security hardening
reply