pith. sign in

arxiv: 1702.00719 · v2 · pith:ZVDXNZZVnew · submitted 2017-02-02 · 💻 cs.CR

Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches

classification 💻 cs.CR
keywords intelmemoryoverheadsperformancesoftware-basedadoptionapproachescause
0
0 comments X
read the original abstract

Memory-safety violations are a prevalent cause of both reliability and security vulnerabilities in systems software written in unsafe languages like C/C++. Unfortunately, all the existing software-based solutions to this problem exhibit high performance overheads preventing them from wide adoption in production runs. To address this issue, Intel recently released a new ISA extension - Memory Protection Extensions (Intel MPX), a hardware-assisted full-stack solution to protect against memory safety violations. In this work, we perform an exhaustive study of the Intel MPX architecture to understand its advantages and caveats. We base our study along three dimensions: (a) performance overheads, (b) security guarantees, and (c) usability issues. To put our results in perspective, we compare Intel MPX with three prominent software-based approaches: (1) trip-wire - AddressSanitizer, (2) object-based - SAFECode, and (3) pointer-based - SoftBound. Our main conclusion is that Intel MPX is a promising technique that is not yet practical for widespread adoption. Intel MPX's performance overheads are still high (roughly 50% on average), and the supporting infrastructure has bugs which may cause compilation or runtime errors. Moreover, we showcase the design limitations of Intel MPX: it cannot detect temporal errors, may have false positives and false negatives in multithreaded code, and its restrictions on memory layout require substantial code changes for some programs.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Forward citations

Cited by 2 Pith papers

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score.

  1. Understanding GCC Builtins to Develop Better Tools

    cs.PL 2019-07 unverdicted novelty 7.0

    Analysis of 4,913 C projects found 37% use at least one GCC builtin, 10 builtins cover over 30% of projects, 110 cover 90%, builtins are still being added, and many tools have incomplete or incorrect support.

  2. ENCRUST: Encapsulated Substitution and Agentic Refinement on a Live Scaffold for Safe C-to-Rust Translation

    cs.SE 2026-04 unverdicted novelty 6.0

    ENCRUST decouples C-to-Rust translation via ABI wrappers and agentic refinement to reduce unsafe constructs across 15 real programs while preserving full test correctness.