explaingit

xoreaxeaxeax/skitter-creek-bath-salts

Analysis updated 2026-08-15

1,588CAudience · researcherComplexity · 5/5Setup · hard

TLDR

A proof-of-concept C program that breaks into protected memory areas by flipping a single bit in the memory controller's address translation registers, bypassing all CPU and OS security barriers. Targets AMD Family 16h processors specifically.

Mindmap

mindmap
  root((repo))
    What it does
      Flips one bit in memory controller
      Bypasses all OS and CPU security
      Redirects protected memory elsewhere
    How it works
      Targets address translation pipeline
      Operates below security barriers
      Rewrites DRAM bank row column mapping
    Target hardware
      AMD Family 16h CPUs
      Last generation with public docs
      Registers cannot be locked
    Broader concepts
      Extends to ARM architecture
      Extends to RISC-V architecture
      Starting point demonstration only
    Audience
      Security researchers
      Low-level systems engineers
      Hardware security experts

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how memory controller address translation can be exploited to bypass hardware security.

USE CASE 2

Understand the full pipeline from virtual addresses down to physical DRAM coordinates.

USE CASE 3

Research security implications of unlocked memory controller registers on legacy AMD CPUs.

What is it built with?

CAMD Family 16hDRAM

How does it compare?

xoreaxeaxeax/skitter-creek-bath-saltsposva/catimgpi-hole/ftl
Stars1,5881,5701,680
LanguageCCC
Last pushed2026-04-072026-07-25
MaintenanceMaintainedActive
Setup difficultyhardeasymoderate
Complexity5/52/53/5
Audienceresearcherdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires specific AMD Family 16h hardware and deep knowledge of memory controller internals to run safely.

No license information was provided in the explanation, so usage rights are unclear.

In plain English

This project demonstrates a technique for breaking into protected areas of computer memory by manipulating the lowest layer of how memory addresses work. The core idea is that when software reads or writes memory, the address it uses passes through many translation steps before reaching the actual physical memory chips. This project targets the very last step in that chain, the memory controller, which converts addresses into raw coordinates for the DRAM chips. The exploit itself is surprisingly small. By flipping a single bit in a memory controller register, the project rewires how physical addresses map to actual memory locations. This means data that should land in a protected, hidden region of memory can be redirected elsewhere. Because every security mechanism built into the CPU, firmware, and operating system operates above the memory controller, none of them detect that the mapping has been altered. The security barriers guard physical addresses, but the scrambling happens below that level. The project targets AMD Family 16h CPUs specifically, which is the last generation whose public datasheets documented the memory controller's translation registers and confirmed they cannot be locked. Later generations simply omitted this documentation. The author notes that the underlying address transformation concepts extend to other architectures including ARM and RISC-V, but this code only demonstrates the starting point. The README includes a detailed diagram of the full address translation pipeline, from the virtual address a program uses down through page tables, TLB lookups, IOMMU walks, cache coherence protocols, and finally the memory controller's remapping and scramble stages. The project works at that final layer, where addresses are rewritten into the bank, row, and column coordinates sent to the memory chips. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Explain how flipping a single bit in the AMD Family 16h memory controller register remaps physical addresses and why OS-level security cannot detect this change.
Prompt 2
Walk through the full memory address translation pipeline from virtual address to DRAM bank/row/column coordinates and identify where the memory controller scramble stage sits.
Prompt 3
Analyze why AMD Family 16h was the last generation to publicly document memory controller translation registers and what security implications unlocked registers create.
Prompt 4
Compare how this memory controller bit-flipping exploit concept could theoretically extend to ARM and RISC-V architectures.

Frequently asked questions

What is skitter-creek-bath-salts?

A proof-of-concept C program that breaks into protected memory areas by flipping a single bit in the memory controller's address translation registers, bypassing all CPU and OS security barriers. Targets AMD Family 16h processors specifically.

What language is skitter-creek-bath-salts written in?

Mainly C. The stack also includes C, AMD Family 16h, DRAM.

What license does skitter-creek-bath-salts use?

No license information was provided in the explanation, so usage rights are unclear.

How hard is skitter-creek-bath-salts to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is skitter-creek-bath-salts for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.