Sharing is caring: secure and efficient shared memory support for MVEEs
Jonas Vinck, Bert Abrath, Bart Coppens, Alexios Voulimeneas, Bjorn De Sutter, Stijn Volckaert
Abstract
Multi-Variant Execution Environments (MVEEs) are a powerful tool for protecting legacy software against memory corruption attacks. MVEEs employ software diversity to run multiple variants of the same program in lockstep, whilst providing them with the same inputs and comparing their behavior. Well-constructed variants will behave equivalently under normal operating conditions but diverge when under attack. The MVEE detects these divergences and takes action before compromised variants can damage the host system.
Existing MVEEs replicate inputs at the system call boundary, and therefore do not support programs that use sharedmemory IPC with other processes, since shared memory pages can be read from and written to directly without system calls.
We analyzed modern applications, ranging from web servers, over media players, to browsers, and observe that they rely heavily on shared memory, in some cases for their basic functioning and in other cases for enabling more advanced functionality. It follows that modern applications cannot enjoy the security provided by MVEEs unless those MVEEs support shared-memory IPC.
This paper first identifies the requirements for supporting shared-memory IPC in an MVEE. We propose a design that involves techniques to identify and instrument accesses to shared memory pages, as well as techniques to replicate I/O through shared-memory IPC. We implemented these techniques in a prototype MVEE and report our findings through
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 223e2134-0042-4694-bc2c-865b3e861eb0Cited by top-tier papers2
- You shall not (by)pass!: practical, secure, and fast PKU-based sandboxingAlexios Voulimeneas, Jonas Vinck, Ruben Mechelinck, Stijn VolckaertEuroSys 2022 · 33 citations
- Moneta: Ex-Vivo GPU Driver Fuzzing by Recalling In-Vivo Execution StatesJoonkyo Jung, Jisoo Jang, Yongwan Jo, Jonas Vinck et al.NDSS 2025
Builds on5
- Spectre Attacks: Exploiting Speculative ExecutionPaul Kocher, Jann Horn, Anders Fogh, Daniel Genkin et al.S&P 2019 · 2,435 citations
- Meltdown: Reading Kernel Memory from User SpaceMoritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher et al.USENIX Security 2018 · 1,456 citations
- Data-Oriented Programming: On the Expressiveness of Non-control Data AttacksHong Hu, Shweta Shinde, Sendroiu Adrian, Zheng Leong Chua et al.S&P 2016 · 420 citations
- Drammer: Deterministic Rowhammer Attacks on Mobile PlatformsVictor van der Veen, Yanick Fratantonio, Martina Lindorfer, Daniel Gruss et al.CCS 2016 · 381 citations
- Address Oblivious Code Reuse: On the Effectiveness of Leakage Resilient DiversityRobert Rudd, Richard Skowyra, David Bigelow, Veer Dedhia et al.NDSS 2017 · 78 citations
Related papers
- MC Mutants: Evaluating and Improving Testing for Memory Consistency SpecificationsReese Levine, Tianhao Guo, Mingun Cho, Alan Baker et al.ASPLOS 2023 · 8 citations
- Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed LanguagesDavid Schwartz, Ankith Kowshik, Luís PinaOOPSLA 2024 · 5 citations
- MTEscape: Bypassing Asynchronous Kernel MTE via Conventional Memory Corruption VulnerabilitiesKyeongmin Kim, Insu YunCCS 2026
- Seeing Through The Same Lens: Introspecting Guest Address Space At Native SpeedSiqi Zhao, Xuhua Ding, Wen Xu, Dawu GuUSENIX Security 2017 · 18 citations
- Enforcing Least Privilege Memory Views for Multithreaded ApplicationsTerry Ching-Hsiang Hsu, Kevin J. Hoffman, Patrick Eugster, Mathias PayerCCS 2016 · 71 citations
