proomt

Search

Search posts, papers, and topics

Hall of Fame

Hall of FamePaul Kocher et al.201867 min readpaperadvanced

Spectre Attacks: Exploiting Speculative Execution

Summary

Spectre shows how mis‑training branch predictors lets an attacker force a CPU to execute transient instructions that leak data via cache side‑channels. The paper defines two practical variants, demonstrates attacks in native code, JavaScript and eBPF, and argues that only hardware redesigns can fully mitigate the threat.

  • Mistraining a conditional branch predictor enables out‑of‑bounds reads that survive as cache state, leaking secret bytes (Variant 1).
  • Mistraining the Branch Target Buffer to redirect indirect branches to attacker‑chosen gadgets allows arbitrary memory reads (Variant 2).
  • The authors built working exploits in native C, JavaScript, and eBPF, proving cross‑process and sandbox breaches on Intel, AMD, and ARM CPUs.
  • Software mitigations (e.g., LFENCE, retpoline) are incomplete; robust fixes require changes to CPU microarchitecture and ISA semantics.

CPU architects, OS and runtime developers, and security engineers must understand Spectre to design effective mitigations and avoid false security assumptions.

9/10

Related reading

  1. Smashing the Stack for Fun and Profit

    The article explains how stack‑based buffer overflows work on x86 Linux, showing stack layout, how overwriting the saved return address can hijack control flow, and demonstrates a simple C exploit. It remains a foundational guide for understanding classic memory‑corruption attacks.

    Hall of Fameberkeley.edu31 minHN21
  2. App Hardening: One Obfuscation Pipeline Across Every Port

    Codename One adds a cloud‑side hardening step that runs on the merged JAR before it is split into Android, iOS, JavaScript, and desktop binaries. It can rename symbols, encrypt string literals, and insert opaque‑predicate control‑flow guards at configurable levels (off → standard → aggressive → paranoid). The transforms are selective per platform to avoid breaking optimizers, and a mapping is kep…

    CodeName Onecodenameone.com6 min
  3. Optimizing Gemini 3.8 Flash for Autonomous Coding Agents: Thinking Levels and Tool Fallbacks

    The article shows how to cut latency and token waste in Gemini‑3.8‑Flash coding agents by routing each step to a suitable `thinkingLevel` (low/medium/high) based on a cheap complexity classifier, validating tool‑call payloads with Zod, and retrying failed calls with exponential back‑off. A full TypeScript harness is provided, including middleware, classifier, level mapping, and retry logic.

    SitePointsitepoint.com17 min