Man Yue Mo: Gaining kernel code execution on an MTE-enabled Pixel 8
So, by using the GPU to access physical addresses directly, I'm able to completely bypass the protection that MTE offers. Ultimately, there is no memory safe code in the code that manages memory accesses. At some point, physical addresses will have to be used directly to access memory.
Posted Mar 20, 2024 2:40 UTC (Wed)
by makendo (guest, #168314)
[Link] (2 responses)
Posted Mar 20, 2024 9:05 UTC (Wed)
by excors (subscriber, #95769)
[Link] (1 responses)
I think that means it is no more inherently secure than the fully-shared-memory model of mobile GPUs. Both rely on IOMMUs etc (and the drivers that configure them) to prevent one process using the GPU to read another process's memory or to bypass other protections.
(Modern game consoles also have fully shared memory. PCs with discrete GPUs are the outlier - I guess it's largely for historical reasons, where PC GPUs were originally add-on cards on a slow bus and therefore had to use their own GPU-local memory, and then system designers saw no need to optimise host RAM for GPU-like access patterns because anyone who cared about performance was already using discrete GPUs, so integrated GPUs were slow and bad, and that architecture persisted despite the major drawbacks.)
Posted Mar 20, 2024 13:46 UTC (Wed)
by epa (subscriber, #39769)
[Link]
Man Yue Mo: Gaining kernel code execution on an MTE-enabled Pixel 8
Man Yue Mo: Gaining kernel code execution on an MTE-enabled Pixel 8
Man Yue Mo: Gaining kernel code execution on an MTE-enabled Pixel 8