The downgrading semantics of memory safety (Extended version)
Ren\'e Rydhof Hansen, Andreas Stenb{\ae}k Larsen, Aslan Askarov

TL;DR
This paper introduces a semantic framework for memory safety focusing on allocator-dependent issues, extending noninterference concepts to include downgrading in low-level memory models.
Contribution
It proposes a notion of gradual allocator independence that captures allocator-specific memory safety aspects, extending the noninterference connection with downgrading mechanisms.
Findings
Defines a formal notion of gradual allocator independence.
Extends noninterference to account for allocator limitations and pointer casts.
Provides a technical treatment of downgrading using information flow machinery.
Abstract
Memory safety is traditionally characterized in terms of bad things that cannot happen. This approach is currently embraced in the literature on formal methods for memory safety. However, a general semantic principle for memory safety, that implies the negative items, remains elusive. This paper focuses on the allocator-specific aspects of memory safety, such as null-pointer dereference, use after free, double free, and heap overflow. To that extent, we propose a notion of gradual allocator independence that accurately captures the allocator-dependent aspects of memory safety. Our approach is inspired by the previously suggested connection between memory safety and noninterference, but extends that connection in a fundamentally important direction towards downgrading. We consider a low-level language with access to an allocator that provides malloc and free primitives in a flat…
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.
