News for hackers. Stuff that matters.
Re:Memory Integrity Enforcement by als0 on Tuesday September 09, 2025 @05:35PM (#45189560)
Second bus?
Re:Memory Integrity Enforcement by bri3d on Tuesday September 09, 2025 @05:41PM (#45189628)
CHERI fundamentally relies on capabilities living in memory that is architecturally separate from program memory. You could do so using a bus firewall, but then you're at the same place as MIE with the SPTM.
Re:Memory Integrity Enforcement by MBCook on Tuesday September 09, 2025 @07:25PM (#45190908)
So something like having built in RAM for the pagetables that aren’t part of the normal pool? That way no matter what kind of attack you come up with user space cannot pass a pointer to it?
Re:Memory Integrity Enforcement by jrtc27 on Tuesday September 09, 2025 @09:37PM (#45192005)
That's not true. Capabilities are in main memory as much as any other data. The tags are in separate memory (whether a wider SRAM, DRAM ECC bits, or a separate table off on the side in a fraction of memory that's managed by the memory controller; all three schemes have been implemented and have trade-offs). But this is also true of MTE; you do not want those tags in normal software-visible main memory either, they need to be protected.
Re:Memory Integrity Enforcement by Findecanor on Wednesday September 10, 2025 @04:42AM (#45194952)
A CHERI capability is stored in main memory but with the tag bit for that location set. The tags are stored in separate memory pages, also in main memory in current designs.

Maybe you've been confused by a description of how it works inside a processor. In early CHERI designs, capabilities were in different architectural processor registers from integers.

In recent CHERI designs, the same register numbers are used for capabilities and other registers. A micro-architecture could be designed to have either all registers be capability registers with the tag bit, or use register renaming to separate integer and capability registers.

I suppose a CHERI MCU for embedded systems with small memory could theoretically have tag pages in separate SRAM instead of caching main memory, but I have not seen that.