SMOV: protecting programs against buffer overflow in hardware - Antonio Lemos Maia Neto (2015)
A Buffer Overflow (BOF) continues to be among the top causes of software vulnerabilities. Last year the security world was taken by surprise when researches unveiled a BOF in OpenSSL. Languages like C and C++, widely used for systems development and for a large variety of applications, do not provide native Array-Bound Checks (ABC). A myriadof proposals endeavor memory protection for such languages by employing both softwareand hardware-based solutions. Due to numerous reasons, none of them have yet reached the mainstream. In this work, we propose a novel approach to achieve an arrays bound-check and a memory access (when allowed) within a single instruction. We discuss how it can be implemented on variable-length ISAs and provide a reference implementation.