ret2spec: Speculative Execution Using Return Stack Buffers
arXiv:1807.10364 · doi:10.1145/3243734.3243761
Abstract
Speculative execution is an optimization technique that has been part of CPUs for over a decade. It predicts the outcome and target of branch instructions to avoid stalling the execution pipeline. However, until recently, the security implications of speculative code execution have not been studied. In this paper, we investigate a special type of branch predictor that is responsible for predicting return addresses. To the best of our knowledge, we are the first to study return address predictors and their consequences for the security of modern software. In our work, we show how return stack buffers (RSBs), the core unit of return address predictors, can be used to trigger misspeculations. Based on this knowledge, we propose two new attack variants using RSBs that give attackers similar capabilities as the documented Spectre attacks. We show how local attackers can gain arbitrary speculative code execution across processes, e.g., to leak passwords another user enters on a shared system. Our evaluation showed that the recent Spectre countermeasures deployed in operating systems can also cover such RSB-based cross-process attacks. Yet we then demonstrate that attackers can trigger misspeculation in JIT environments in order to leak arbitrary memory content of browser processes. Reading outside the sandboxed memory region with JIT-compiled code is still possible with 80\% accuracy on average.
Updating to the cam-ready version and adding reference to the original paper
Cited by in corpus (11)
- SgxPectre Attacks: Stealing Intel Secrets from SGX Enclaves via Speculative Execution
- SMoTherSpectre: exploiting speculative execution through port contention
- Automatically Eliminating Speculative Leaks from Cryptographic Code with Blade
- SoK: Hardware Defenses Against Speculative Execution Attacks
- Hacky Racers: Exploiting Instruction-Level Parallelism to Generate Stealthy Fine-Grained Timers
- DECLASSIFLOW: A Static Analysis for Modeling Non-Speculative Knowledge to Relax Speculative Execution Security Measures (Full Version)
- A Survey of Security Concerns and Countermeasures in Modern Micro-architectures with Transient Execution
- BasicBlocker: ISA Redesign to Make Spectre-Immune CPUs Faster
- ProSpeCT: Provably Secure Speculation for the Constant-Time Policy (Extended version)
- Okapi: Efficiently Safeguarding Speculative Data Accesses in Sandboxed Environments
- Foundations of Hardware-Software Leakage Contracts