The first of hopefully many papers on the CHERIoT platform, published at MICRO 2023, held, amusingly, near me in Toronto.

The paper is available locally.


The ubiquity of embedded devices is apparent. The desire for increased functionality and connectivity drives ever larger software stacks, with components from multiple vendors and entities. These stacks should be replete with isolation and memory safety technologies, but existing solutions impinge upon development, unit cost, power, scalability, and/or real-time constraints, limiting their adoption and production-grade deployments. As memory safety vulnerabilities mount, the situation is clearly not tenable and a new approach is needed. To slake this need, we present a novel adaptation of the CHERI capability architecture, co-designed with a green-field, securitycentric RTOS. It is scaled for embedded systems, is capable of fine-grained software compartmentalization, and provides affordances for full inter-compartment memory safety. We highlight central design decisions and offloads and summarize how our prototype RTOS uses these to enable memory-safe, compartmentalized applications. Unlike many state-of-the-art schemes, our solution deterministically (not probabilistically) eliminates memory safety vulnerabilities while maintaining source-level compatibility. We characterize the power, performance, and area microarchitectural impacts, run microbenchmarks of key facilities, and exhibit the practicality of an end-to-end IoT application. The implementation shows that full memory safety for compartmentalized embedded systems is achievable without violating resource constraints or realtime guarantees, and that hardware assists need not be expensive, intrusive, or power-hungry.


  author  = {Saar Amar and David Chisnall and Tony Chen and Nathaniel Wesley
            Filardo and Ben Laurie and Kunyan Liu and Robert Norton and Simon
            W. Moore and Yucong Tao and Robert N. M. Watson and Hongyan Xia},
  title   = {{CHERIoT}: Complete Memory Safety for Embedded Devices},
  year    = {2023},
  month   = {nov},
  booktitle={Proceedings of MICRO 2023}