3 ms·
unfortunately a little light on the details. I'm very curious how the bug survived through MTE
by vsgherzi 5mo ago
unfortunately a little light on the details. I'm very curious how the bug survived through MTE
- dorianmariecom 5mo agoMemory Tagging Extension Arm published the Memory Tagging Extension (MTE) specification in 2019 as a tool for hardware to help find memory corruption bugs. MTE is a memory tagging and tag-checking system, where every memory allocation is tagged with a secret. The hardware guarantees that later requests to access memory are granted only if the request contains the correct secret. If the secrets don’t match, the app crashes, and the event is logged. This allows developers to identify memory corruption bugs immediately as they occur. https://support.apple.com/guide/security/operating-system-integrity-sec8b776536b/web https://support.apple.com/guide/security/operating-system-in...
- sillysaurusx 5mo agoThank you. I was about to ask.
- vsgherzi 5mo agoUpon further reading on data only attacks (https://www.usenix.org/publications/loginonline/data-only-attacks-are-easier-you-think https://www.usenix.org/publications/loginonline/data-only-at...) This makes more sense. You don't trigger MTE since you're not doing anything for force MTE to take action the program isn't actually changing. My other question would be, why didn't apple use fbounds checking here? They've been doing it aggressively everywhere else. MTE plus fbounds checking everywhere should lead to an extremly hardened OS
- pjmlp 5mo agoQuite strange indeed, given that was one of the main points on their security conference a few months ago.
- vsgherzi 5mo agoI can only imagine that 1. it’s to performance sensitive Or 2. The os is so darn large it’s hard to recompile everything
- kenferry 5mo agoI worked at Apple for a long time. The OS gets fully recompiled regularly. A simultaneous total world build is relatively rare (is that needed here?), but it does happen. Sometimes new compiler versions or features need this.
- vsgherzi 5mo agoHm that leaves more questions for me. Why does this path not have bounds checking, is think perhaps a limit of the clang flag or is it more simply a mistake of omission on apples part. Either way it seems like a bad look. I wish we’d get a post mortem
- asimovDev 5mo agoI dunno if that's sensitive information, but how long did a build usually take?
- kenferry 5mo agoI wasn't close enough to that to know how long a world build took. Didn't seem like it was too crazy though. Incremental (non-world) builds of the OS come out every day.
- aiscoming 5mo agocould be a different type of data only attack, which doesnt override the boundaries
- vsgherzi 5mo agoWell it’s memory corruption so I think it’s pretty safe to assume it’s a bounds issue. I’m not sure if it’s possible to get this with something like type confusion tho I could be wrong here.
- landr0id 5mo agoGPU memory/shaders/etc. isn't protected by MTE or PAC. They said "data-only", so I guess GPU commands could fit into this description.
- LoganDark 5mo agoIIRC, the GPU is behind a memory controller, so I doubt corrupting GPU memory alone could lead to an LPE. But I suppose it would give you someplace to store stuff if you can make something else read from it.
- traceroute66 5mo ago> I'm very curious how the bug survived through MTE Its not the first time bugs get past MTE, happened with Google Pixel last year ... https://github.blog/security/vulnerability-research/bypassing-mte-with-cve-2025-0072/ https://github.blog/security/vulnerability-research/bypassin...
- Riany 5mo agoI had the same question and if this is a data-only attack, the lesson may be that MIE reduces many attack paths but does not remove every useful corruption primitive