PICASSO: Scaling CHERI Use-After-Free Protection to Millions of Allocations using Colored Capabilities
Merve G\"ulmez, Ruben Sturm, Hossam ElAtali, H{\aa}kan Englund, Jonathan Woodruff, N. Asokan, Thomas Nyman

TL;DR
PICASSO introduces colored capabilities to CHERI, enabling scalable and efficient use-after-free protection for millions of allocations with minimal performance impact, by tracking provenance and allowing bulk revocation of dangling pointers.
Contribution
The paper presents colored capabilities as a novel extension to CHERI, significantly improving scalability and security in temporal memory safety without high overhead.
Findings
Effective mitigation of use-after-free and double-free bugs.
Small performance overhead (~5%) on SPEC CPU benchmarks.
More consistent performance in long-running database and gRPC workloads.
Abstract
While the CHERI instruction-set architecture extensions for capabilities enable strong spatial memory safety, CHERI lacks built-in temporal safety, particularly for heap allocations. Prior attempts to augment CHERI with temporal safety fall short in terms of scalability, memory overhead, and incomplete security guarantees due to periodical sweeps of the system's memory to individually revoke stale capabilities. We address these limitations by introducing colored capabilities that add a controlled form of indirection to CHERI's capability model. This enables provenance tracking of capabilities to their respective allocations via a hardware-managed provenance-validity table, allowing bulk retraction of dangling pointers without needing to quarantine freed memory. Colored capabilities significantly reduce the frequency of capability revocation sweeps while improving security. We realize…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Scientific Computing and Data Management · Software Testing and Debugging Techniques
