Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ARM Memory Tagging: how it improves C/C++ memory safety (2018) [pdf] (llvm.org)
37 points by fanf2 3 hours ago | hide | past | favorite | 11 comments




I am incredibly happy that Apple has added MTE support to the latest iPhones and perhaps the M5 chips as well (?). If that’s the case I don’t think any other personal computers have anything close to Apple machines in terms of memory safety and related topics (Secure Enclave etc).

Hope other vendors will ship MTE in their laptop and desktop chips soon enough. While I’m very positive about x86_64 adding support for this (ChkTag), it’ll definitely take a while…

In my opinion a worthwhile enough reason to upgrade but feels like a waste given my current devices work great.


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-...


It's MTE4. The "enhancements" mostly make it easier for Apple developers to hack XNU into continuing to operate with MTE.

Do you know if macos has the changes needed to make use of MIE with M5? I assume that it has with iPadOS.

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?


sel4 ships with memory safety on by default.

Sooo, less reasons (more excuses) for people to move from C++ to Rust?

Honestly it feels at the right abstraction layer too. With Rust you rely on correctness in translation, it is much better to have defense in depth than in breadth.


wouldn't it be like a crime against the crown to not have a cheri like thing in arm?

I always see cheri brought up and admittedly I know very little about it, except that the ergonomics appear poor requiring twice the storage for each pointer and ground up rearchitecting of the OS, making it quite unappealing from an engineering standpoint.



Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: