ACE up the Sleeve: Hacking into Apple's USB-C Controller
This talk demonstrates techniques for reverse engineering and interacting with Apple's proprietary USB-C port controllers, known as the ACE series. The researcher details how to use Vendor Defined Messages (VDM) and side-channel analysis to bypass security measures and gain arbitrary memory read/write access on the controller. The presentation highlights the lack of secure boot on these microcontrollers, allowing for persistent code execution that survives device restores. The researcher also releases custom tools for interacting with the Apple HPM bus and enumerating controller commands.
Bypassing Apple’s USB-C Security: Exploiting the ACE Controller
TLDR: Apple’s proprietary USB-C port controllers, known as the ACE series, lack secure boot and firmware signing, allowing for persistent, low-level code execution that survives device restores. By leveraging Vendor Defined Messages (VDM) and side-channel analysis, researchers can gain arbitrary memory read/write access on these controllers. This research provides a roadmap for hardware hackers to interact with the Apple HPM bus and perform fault injection on modern Apple silicon devices.
Hardware security often feels like a black box, especially when dealing with Apple’s proprietary silicon. While most researchers focus on the main Application Processor (AP), the peripherals handling our physical connections are often overlooked. The recent research into the Apple ACE series of USB-C port controllers proves that these "simple" microcontrollers are anything but secure. If you are performing a hardware-focused engagement or looking for persistent access that survives a full OS wipe, the USB-C controller is a prime, yet largely ignored, target.
The Anatomy of the ACE Controller
The ACE series controllers are the gatekeepers of your USB-C ports. They handle power delivery (USB-PD) negotiation, data role switching, and various low-level hardware tasks. These chips are not just simple logic gates; they are fully functional microcontrollers running their own firmware.
The research highlights that these controllers, specifically the ACE2 and ACE3, are essentially white-labeled Texas Instruments microcontrollers with custom ROMs. Because they lack a secure boot mechanism, the firmware is not cryptographically verified at runtime. While updates are protected by RSA-3072 signatures, this check only occurs during the update process itself. Once the firmware is loaded, the chip runs whatever code is currently in its flash memory. This creates a massive window for persistence. If you can achieve code execution, you own the controller until the next firmware update overwrites your payload.
Interacting with the HPM Bus
To talk to these chips, you need to interface with the Apple Host Port Microcontroller (HPM) bus. This is the internal communication channel between the main System on a Chip (SoC) and the ACE controller. The researchers released hpmexplore, a tool that allows you to send custom Vendor Defined Messages (VDM) to the controller.
Using VDM, you can issue proprietary commands to the chip. The researchers identified a command handler structure that includes "privileged" operations like memory read (MEMr), memory write (MEMw), and memory modify (MEMm). While these commands are often locked on production systems, they provide a direct path to arbitrary memory access if you can bypass the initial restrictions.
For those looking to reproduce this, the researchers also released acetool, which simplifies the process of communicating with the ACE controller. You can use it to check the boot status of the chip:
sudo ./acetool IOService:/AppleT810xIO/i2c035010000/AppleS5L8940X12CCOsManager06B/AppleHPMBusController/hpm1/AppleHPMARMI2C
This command returns the current state of the controller, letting you know if it is running in application mode (APP) or if it has crashed into the Device Firmware Update (DFU) mode.
Side-Channel Analysis and Fault Injection
Since the debug interfaces on the newer ACE3 chips are disabled, you cannot simply plug in a JTAG probe and start debugging. Instead, you have to rely on side-channel analysis to find the right timing for an attack. By monitoring the flash chip-select line, you can identify the exact moment the controller begins loading its firmware. This provides a perfect trigger signal for fault injection.
The researchers used Electro-Magnetic Fault Injection (EMFI) to skip instructions or corrupt registers during the firmware load process. By placing a coil over the chip and pulsing it with high voltage at the precise moment identified by the side-channel trace, they were able to bypass security checks.
This is not a clean, one-click exploit. It requires significant physical setup, including a ChipWhisperer-Husky for precise triggering and a ChipSHOUTER for the injection itself. The process is iterative and often results in a bricked controller, requiring a manual re-flash of the SPI flash memory. However, the ability to modify the version string or inject custom code into the controller’s memory space demonstrates that the security boundary is effectively non-existent.
Defensive Implications
For blue teams and hardware designers, this research is a wake-up call regarding the "trust" placed in peripheral microcontrollers. If a device’s security relies on a peripheral that can be compromised via physical access, the entire chain of trust is broken. Defenders should prioritize hardware-level protections, such as disabling external debug interfaces and implementing robust, hardware-backed secure boot that verifies firmware integrity at every power-on, not just during updates.
For those of us on the offensive side, this work opens up a new vector for persistent, stealthy implants. If you are conducting a red team engagement where physical access is a possibility, the USB-C controller is a high-value target that is unlikely to be monitored by standard EDR solutions. The tools provided by the researchers are a starting point, but the real work lies in mapping the undocumented command sets of these controllers. Start by dumping the flash and looking for the command handler structures; you might find that these chips are far more capable than their manufacturers intended.
Vulnerability Classes
Target Technologies
Attack Techniques
All Tags
Up Next From This Conference
Similar Talks

Hacking Apple's USB-C Port Controller

Unmasking the Snitch Puck: The Creepy IoT Surveillance Tech in the School Bathroom




