
Injection controller
ddropattack/ddrop
This repository contains the hardware designs, firmware, host evaluation tools, and attack proof-of-concepts for DDRop.

This repository contains the hardware designs, firmware, host evaluation tools, and attack proof-of-concepts for DDRop.
Rdimm interposer is an open-source printed circuit board by ddropattack, from the ddropattack/ddrop repository on GitHub, published under the MIT licence. It is a 6-layer board of 133.4 × 22.5 mm with 68 parts on 206 nets, routed with 1,149 tracks and 1,576 vias.
It is built around the TMUX136RSE and APHCM2012CGCK-F01. Its parts include 22 ICs, 5 capacitors, 1 resistor, 1 diode and 1 connector.
This repository contains the hardware designs, firmware, host evaluation tools, and attack proof-of-concepts for DDRop.
Modern Trusted Execution Environments (TEEs) such as Intel TDX, Intel Scalable SGX, and AMD SEV-SNP rely on memory encryption to protect enclaves and confidential VMs from an untrusted hypervisor or cloud operator. However, to maintain memory performance, scalable cloud TEEs omit cryptographic freshness guarantees.
DDRop demonstrates active physical interposition attacks on DDR5 at native bus speeds using a custom low-cost DDR5 RDIMM interposer. By injecting parity errors on DDR5 command/address lines, the interposer silently discards cache line writebacks (dropping writes) or swaps chip selects. This repository contains the full materials to inspect, build, and evaluate the interposer hardware, controller firmware, host primitives, and confidential VM attacks.
The contents of this repository correspond directly to the sections of the paper:
| Directory | Paper Section | Description |
|---|---|---|
rdimm-interposer/ | §4.1 | DDR5 RDIMM interposer PCB designs |
rdimm-injection-controller/ | §4.1 | Microcontroller injection board designs |
rdimm-injection-controller-firmware/ | §4.1 | Teensy 4.1 firmware & Python control scripts |
host-evaluation/ | §4.2 | Bare-metal host evaluation of DDRop primitives |
sev-attacks/ | §5.1, §5.2.1 | Attacks on AMD SEV-SNP |
sgx-attacks/ | §5.1 | Attacks on Intel Scalable SGX |
tdx-attacks/ | §5.1, §5.2.1, §5.2.2, §6 | Attacks on Intel TDX |
Demonstration videos recorded during physical attack execution are available in the respective directories:
sev-attacks/drop-write/sev-drop-write.pngSNP_PAGE_MOVE exploit: sev-attacks/page-move/sev-page-move.webmsgx-attacks/drop-write/sgx-drop-write.mp4tdx-attacks/page-relocate/tdx-page-relocate.webmtdx-attacks/sept-injection/tdcs-poc.mp4requirements.txt packages installedteensy_loader_cli with Teensyduino support (for compiling and flashing the controller firmware)End-to-end physical replication of the attacks requires:
rdimm-interposer/ and rdimm-injection-controller/).When physical interposer hardware is not available, the software components and attack binaries can still be compiled locally, and their execution flow can be cross-referenced with the provided screencasts.
You can verify and build all host evaluation tools and attack PoCs from the repository root:
make allThis command automatically builds the dependencies and produces:
host-evaluation/drop-write, swap-ranks, drop-read)sev-attacks/drop-write, page-move, movepage)tdx-attacks/drop-write, page-relocate, attacker-td, victim-td)To remove all built binaries and object files:
make clean[!NOTE] Building Intel Scalable SGX enclaves (
sgx-attacks/) requires the Intel SGX SDK and SGX-Step withLIBSGXSTEP_DIRset (seesgx-attacks/README.md). The microcontroller firmware can be compiled withmake firmware(seerdimm-injection-controller-firmware/README.md).
Refer to the individual README files in each folder for specific execution steps, kernel patch instructions, and command-line parameters:
rdimm-interposer/README.md: Interposer specifications, stackup, and modification instructions.rdimm-injection-controller/README.md: Controller board hardware and assembly.rdimm-injection-controller-firmware/README.md: Firmware flashing and control API.host-evaluation/README.md: Running host-level write drop, read drop, and rank swapping primitives.sev-attacks/README.md: AMD SEV-SNP setup and attack steps.sgx-attacks/README.md: Intel Scalable SGX driver patches and enclave evaluation.tdx-attacks/README.md: Intel TDX kernel/TDXplore patches, page relocation, and SEPT injection attacks.If you reference or build upon this work, please cite the paper:
@inproceedings{ddrop26,
title = {{DDRop}: Active Memory Interposer Attacks on Confidential {VMs} by Dropping {DDR5} Writes},
author = {De Meulemeester, Jesse and Gloor, Stefan and Jattke, Patrick and Moghimi, Daniel and Oswald, David and Thompson, Martin and Razavi, Kaveh and Verbauwhede, Ingrid and Van Bulck, Jo},
booktitle = {Proceedings of the 2026 {ACM} {SIGSAC} Conference on Computer and Communications Security ({CCS} '26)},
publisher = {ACM},
year = 2026,
}| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | VSS | ddr5:testpoint_small | TP5, TP7, TP9, TP11, TP13, TP15, TP18, TP19, TP20, TP25, TP29, TP30, TP34, TP35, TP36 |
| 12 | TMUX136 | ddr5:uqfn10 | U4, U5, U6, U7, U8, U9, U10, U18, U19, U20, U21, U22 |
| 7 | ~ | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U11, U12, U13, U14, U15, U16, U17 |
| 3 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C3, C4 |
| 2 | LOGO | LOGO | G***, G*** |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | 2.2u | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | ALERT_n | ddr5:testpoint | TP6 |
| 1 | APHCM2012CGCK-F01 | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | CA0 | ddr5:testpoint | TP10 |
| 1 | CA1 | ddr5:testpoint | TP27 |
| 1 | CA2 | ddr5:testpoint | TP12 |
| 1 | CA3 | ddr5:testpoint | TP28 |
| 1 | CA4 | ddr5:testpoint | TP14 |
| 1 | CA5 | ddr5:testpoint | TP31 |
| 1 | CA6 | ddr5:testpoint | TP16 |
| 1 | CK_c | ddr5:testpoint | TP32 |
| 1 | CK_t | ddr5:testpoint | TP33 |
| 1 | CS0_n | ddr5:testpoint | TP8 |
| 1 | CS1_n | ddr5:testpoint | TP26 |
| 1 | HSA | ddr5:testpoint | TP22 |
| 1 | HSCL | ddr5:testpoint | TP3 |
| 1 | HSDA | ddr5:testpoint | TP4 |
| 1 | Molex 5019512430 | ddr5:5019512430 | J1 |
| 1 | PAR | ddr5:testpoint | TP17 |
| 1 | PCAMP | ddr5:testpoint | TP21 |
| 1 | RESET_n | ddr5:testpoint | TP24 |
| 1 | TLV74311PDBVR | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | TestPoint_Small | ddr5:testpoint_small | TP23 |
| 1 | VIN_BULK | ddr5:testpoint_small | TP1 |
| 1 | VIN_MGMT | ddr5:testpoint | TP2 |
| 1 | ~ | ddr5:ddr5_bottom_conn_double | U2 |
| 1 | ~ | ddr5:ddr5_edge_connector | U1 |
It measures 133.4 × 22.5 mm and has 6 copper layers, 1.21 mm thick.
68 parts, built around the TMUX136RSE and APHCM2012CGCK-F01. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ddropattack/ddrop repository on GitHub, at the commit this page was made from: the board is rdimm-interposer/hardware/rdimm-interposer.kicad_pcb and its schematic rdimm-injection-controller/hardware/injection-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

ddropattack/ddrop
This repository contains the hardware designs, firmware, host evaluation tools, and attack proof-of-concepts for DDRop.


antmicro/lpddr4-testbed
Experimental breakout board for a signle 200-ball WFBGA LPDDR4 chip in SO-DIMM DDR4 form factor.

nathanfraske/CEC-Platform
ONE board file, kept current by the wave (owner directive 2026-07-25: "the current best should be placed into a candidate folder per board and kept current with only one board ideally so we have a reference").




uwrealitylabs/vitracker-v0
Basic DVP/MIPI camera board made by Miles Milne