Skip to the content
PCBKitNew board
2 layers61 × 50.3 mmInjection controller, the printed circuit board in 3D

Injection controller

ddropattack/ddrop33

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

Size
61 × 50.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
37
Nets
74
Pads
178
Tracks, vias
838, 195
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 Sep 2026
Updated
14 Sep 2026

Overview

Injection controller is an open-source printed circuit board by ddropattack, from the ddropattack/ddrop repository on GitHub, published under the MIT licence. It is a 2-layer board of 61 × 50.3 mm with 37 parts on 74 nets, routed with 838 tracks and 195 vias.

It is built around the TEENSY 4.1, TLV1117-33DCY and MRA4007T3G-FS, with the BS870 among its other parts. Its parts include 7 capacitors, 7 resistors, 5 diodes, 3 connectors and 2 ICs. It belongs with the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

4

README

README.md

DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes

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

  • Authors: Jesse De Meulemeester (KU Leuven), Stefan Gloor (ETH Zurich), Patrick Jattke (ETH Zurich), Daniel Moghimi (Google), David Oswald (Durham University), Martin Thompson (Durham University & ZF Automotive UK Ltd), Kaveh Razavi (ETH Zurich), Ingrid Verbauwhede (KU Leuven), and Jo Van Bulck (KU Leuven)

Overview

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.


Repository Structure & Paper Mapping

The contents of this repository correspond directly to the sections of the paper:

DirectoryPaper SectionDescription
rdimm-interposer/§4.1DDR5 RDIMM interposer PCB designs
rdimm-injection-controller/§4.1Microcontroller injection board designs
rdimm-injection-controller-firmware/§4.1Teensy 4.1 firmware & Python control scripts
host-evaluation/§4.2Bare-metal host evaluation of DDRop primitives
sev-attacks/§5.1, §5.2.1Attacks on AMD SEV-SNP
sgx-attacks/§5.1Attacks on Intel Scalable SGX
tdx-attacks/§5.1, §5.2.1, §5.2.2, §6Attacks on Intel TDX

Demonstration videos recorded during physical attack execution are available in the respective directories:


Getting Started

Hardware and Software Requirements

Software & Build Environment
  • Linux x86_64 system
  • GCC (supporting C11 / C++17) and Make
  • Python 3.8+ with requirements.txt packages installed
  • KiCad (v9.0 or later) to view PCB schematics and layouts
  • Arduino IDE or teensy_loader_cli with Teensyduino support (for compiling and flashing the controller firmware)
Physical Experiment Requirements

End-to-end physical replication of the attacks requires:

  1. The manufactured DDR5 RDIMM Interposer and Injection Controller boards (design files in rdimm-interposer/ and rdimm-injection-controller/).
  2. A Teensy 4.1 microcontroller board connected to the injection controller.
  3. Server hardware with DDR5 RDIMM slots supporting the target TEE:
    • Intel TDX: 5th/6th Gen Intel Xeon Scalable processor with TDX enabled.
    • AMD SEV-SNP: 4th/5th/6th Gen AMD EPYC processor with SEV-SNP enabled.
    • Intel Scalable SGX: 4th/5th/6th Gen Intel Xeon Scalable processor with SGX enabled.

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.

Building the Artifacts

You can verify and build all host evaluation tools and attack PoCs from the repository root:

bash
make all

This command automatically builds the dependencies and produces:

  • Host evaluation primitives (host-evaluation/drop-write, swap-ranks, drop-read)
  • AMD SEV-SNP attack binaries (sev-attacks/drop-write, page-move, movepage)
  • Intel TDX attack binaries (tdx-attacks/drop-write, page-relocate, attacker-td, victim-td)

To remove all built binaries and object files:

bash
make clean

[!NOTE] Building Intel Scalable SGX enclaves (sgx-attacks/) requires the Intel SGX SDK and SGX-Step with LIBSGXSTEP_DIR set (see sgx-attacks/README.md). The microcontroller firmware can be compiled with make firmware (see rdimm-injection-controller-firmware/README.md).


Detailed Instructions

Refer to the individual README files in each folder for specific execution steps, kernel patch instructions, and command-line parameters:


Citation

If you reference or build upon this work, please cite the paper:

bibtex
@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,
}

Parts

37
QtyValueFootprintReferences
6TestPointTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP1, TP2, TP3, TP4, TP5, TP6
5100nCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C5
5330Resistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R7
3LEDLED_SMD:LED_0805_2012MetricD1, D2, D3
210uCapacitor_SMD:CP_Elec_5x5.8C6, C7
247kResistor_SMD:R_0603_1608MetricR5, R6
2LOGOLOGOG***, G***
2MRA4007T3GDiode_SMD:D_SMAD4, D5
1BS870Package_TO_SOT_SMD:SOT-23Q1
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1G5V-1Relay_THT:Relay_SPDT_Omron_G5V-1K1
1Jumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP2
1Jumper_3_Bridged12Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1Molex 5019512430DDR5:5019512430J2
1RJ45_Bel_SI-60062-FDDR5:480251090J1
1TL3300DDR5:TL3300SW1
1TLV1117-33Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1Teensy4.1Teensy:Teensy41U1

Questions

How big is the Injection controller PCB?

It measures 61 × 50.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Injection controller use?

37 parts, built around the TEENSY 4.1, TLV1117-33DCY, MRA4007T3G-FS and BS870. 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.

Where can I download the Injection controller KiCad files?

From the ddropattack/ddrop repository on GitHub, at the commit this page was made from: the board is rdimm-injection-controller/hardware/injection-controller.kicad_pcb and its schematic rdimm-injection-controller/hardware/injection-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Injection controller design in my own project?

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).

More from ddropattack/ddrop

1
  • 6 layers133.4 × 22.5 mmRdimm interposer, the printed circuit board in 3D

    Rdimm interposer

    ddropattack/ddrop

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

    68 parts33MIT

Similar boards

  • 4 layers100 × 90 mmTmc2130 mip, the printed circuit board in 3D

    Tmc2130 mip

    Mipot-Hi-Tech/mip_servo_controller

    MIP Series Design and Firmware Example

    226 parts3
  • 4 layers100 × 84 mmBrain, the printed circuit board in 3D

    Brain

    halfn0rmal/open-spa

    Open source spa pool controller

    131 partsApache-2.0
  • 2 layers60 × 48 mmLight CC, the printed circuit board in 3D

    Light CC

    sankarmanoj/LED_Dimmer

    12V PWM/Buck Dimmer with WebUSB

    67 parts
  • 2 layers100 × 100 mmBQ76pl455a, the printed circuit board in 3D

    BQ76pl455a

    g-rahul/BQ76PL455A-EVM-Clone

    This respository contains low cost design files for BQ76PL455A-EVM Clone.

    255 parts5
  • 2 layers89.7 × 53.5 mmArdui89 Cinque Uno, the printed circuit board in 3D

    Ardui89 Cinque Uno

    Cyrillinux/Ardui89

    Adds 8051 architecture family to the Arduino IDE : STC89C52RC, STC89C516RD+, STC15W408AS-DIP16

    57 parts2
  • 2 layers51 × 70 mmAuto dimmer, the printed circuit board in 3D

    Auto dimmer

    ilyushkin/auto_dimmer

    Automatic dimmer for IKEA NYMANE (103.569.62) lamp based on AVR ATtiny13A MCU.

    56 parts2GPL-3.0
  • 2 layers100 × 100 mmKicad LFO 1 2, the printed circuit board in 3D

    Kicad LFO 1 2

    promesoft/KicadJE_LFO_1

    Initial Analogue LFO - Mult/Mix - NAND/AND/NOT - FlipFlop - 555LFO

    147 parts2MIT
  • 2 layers99.5 × 74 mmDimmer pcb, the printed circuit board in 3D

    Dimmer pcb

    Bonusbartus/ac_pwm_led_dimmer

    A PCB for dimming AC LED lamps

    35 parts