Introducing CHERIseed - a new tool for checking C/C++ code compatibility with CHERI Pure-cap on a CHERI-unaware system

CHERIseed is a software-only implementation of CHERI C/C++ semantics with aim to facilitate the porting effort of existing code to CHERI. It does so via providing some of the functionality while running on hardware that is not CHERI-aware.

With CHERIseed toolchain, enabling CHERI Pure-cap C/C++ software semantics on CHERI-unaware hardware is as easy as adding `-fsanitize=cheriseed -mabi=purecap` to the build flags.

Although CHERIseed does not provide the same security guarantees as CHERI hardware and should not be used as a security-enforcing tool, by compiling and running code with CHERIseed anyone can experiment with CHERI C/C++ programming and identify incompatible and potentially unsafe code that would have faulted on real CHERI/Morello hardware.

More information and examples are available at the blog post https://www.morello-project.org/resources/cheriseed-port-effortlessly-to-cheri/

While we've already successfully used CHERIseed to debug CHERI compatibility issues, the tool is still in its alpha phase and there are still issues to be discovered. If you would like something in CHERIseed to be improved or a feature to be added, please share a request on this forum or report as an issue using the link. We welcome contributions to further development of the tool.