<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>microarchitectural attacks — algoatson.github.io</title>
    <link>https://algoatson.github.io/series/microarchitectural-attacks/</link>
    <atom:link href="https://algoatson.github.io/series/microarchitectural-attacks/feed.xml" rel="self" type="application/rss+xml"/>
    <description>A bounds check the CPU hasn&#x27;t finished evaluating doesn&#x27;t stop it from speculatively running the code behind it. Spectre v1 trains the branch predictor to run an out-of-bounds read, encodes the secret into the cache, and reads it back with FLUSH+RELOAD after the architecture rolls everything else away.</description>
    <language>en</language>
    <lastBuildDate>Tue, 16 Jun 2026 02:47:52 +0000</lastBuildDate>
    <item>
      <title>FLUSH+RELOAD — reading secrets through the cache</title>
      <link>https://algoatson.github.io/p/flush-reload-cache-side-channel/</link>
      <guid isPermaLink="true">https://algoatson.github.io/p/flush-reload-cache-side-channel/</guid>
      <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
      <category>side-channel</category><category>research</category><category>crypto</category>
      <description>You don&#x27;t always need to read a victim&#x27;s memory to learn its secrets — you can watch which lines it pulls into cache. Flush a shared line, let the victim run, time how long it takes to reload, and the access latency tells you whether the victim touched it. Repeat, and a secret-dependent access pattern falls out.</description>
    </item>
    <item>
      <title>Prime+Probe — a side channel with nothing shared</title>
      <link>https://algoatson.github.io/p/prime-probe-eviction-sets/</link>
      <guid isPermaLink="true">https://algoatson.github.io/p/prime-probe-eviction-sets/</guid>
      <pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate>
      <category>side-channel</category><category>research</category>
      <description>FLUSH+RELOAD needs memory shared with the victim. Prime+Probe drops that requirement: fill a cache set with your own lines, let the victim run, and time how many of yours got evicted. You lose address-level resolution and gain the ability to spy across processes and VMs that share nothing but silicon.</description>
    </item>
    <item>
      <title>Spectre v1 — the CPU runs code it shouldn&#x27;t</title>
      <link>https://algoatson.github.io/p/spectre-v1-bounds-check-bypass/</link>
      <guid isPermaLink="true">https://algoatson.github.io/p/spectre-v1-bounds-check-bypass/</guid>
      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>
      <category>side-channel</category><category>research</category>
      <description>A bounds check the CPU hasn&#x27;t finished evaluating doesn&#x27;t stop it from speculatively running the code behind it. Spectre v1 trains the branch predictor to run an out-of-bounds read, encodes the secret into the cache, and reads it back with FLUSH+RELOAD after the architecture rolls everything else away.</description>
    </item>
  </channel>
</rss>
