Is Your Memory Protected? Uncovering Hidden Vulnerabilities in Automotive MPUs
This talk demonstrates two hardware vulnerabilities in 32-bit PowerPC microcontrollers that allow a privileged attacker to disable Memory Protection Units (MPUs) and System Memory Protection Units (SMPUs). By flipping the Global Valid (GVLD) bit in the Control/Error Status Register, an attacker can bypass memory access restrictions to read, write, or execute code in protected memory regions. The researchers showcase a practical exploit using Return-Oriented Programming (ROP) to trigger an airbag deployment mechanism on a vulnerable Body Control Module (BCM).
Bypassing Hardware Memory Protection in Automotive Microcontrollers
TLDR: Researchers at Black Hat 2024 demonstrated that specific 32-bit PowerPC microcontrollers from STMicroelectronics and NXP contain hardware-level vulnerabilities that allow a privileged attacker to disable Memory Protection Units (MPUs). By flipping the Global Valid (GVLD) bit in the Control/Error Status Register, an attacker can bypass memory access restrictions to read, write, or execute code in protected regions. This research highlights a critical failure in hardware-based access control, enabling potential remote code execution on safety-critical automotive components like Body Control Modules.
Automotive security often relies on the assumption that hardware-level access controls are immutable and trustworthy. We treat the Memory Protection Unit (MPU) as the final arbiter of what code can touch which memory address. If the MPU says a region is read-only, we assume the hardware will enforce that rule regardless of what the software tries to do. This assumption is dangerous. Recent research presented at Black Hat 2024 proves that for certain 32-bit PowerPC microcontrollers, this hardware-enforced boundary is merely a suggestion that a privileged attacker can ignore.
The Vulnerability: Flipping the Global Valid Bit
The core of this research centers on how these microcontrollers manage memory access via the MPU and the System Memory Protection Unit (SMPU). These units are designed to divide memory into regions and assign specific permissions—read, write, or execute—to different bus masters. In a properly configured system, these units act as a gatekeeper, blocking unauthorized memory transactions before they ever reach the target memory.
The vulnerability exists because the hardware implementation of these protection units is not as robust as the documentation implies. Specifically, the researchers identified that the Global Valid (GVLD) bit in the Control/Error Status Register—which dictates whether the SMPU is active—can be modified by a privileged attacker even after the system has been configured and locked.
When an attacker gains code execution on a device, they typically face the hurdle of non-executable stacks or read-only memory regions. However, if they can reach the register responsible for the SMPU configuration, they can simply flip the GVLD bit from 1 to 0. This action effectively disables the entire memory protection mechanism for the device. Once disabled, the hardware no longer enforces any access restrictions, granting the attacker full read, write, and execute access to previously protected memory regions.
Practical Exploitation via ROP
The researchers demonstrated this technique using a Body Control Module (BCM) based on the NXP MPC5748 microcontroller. The attack flow is a masterclass in modern embedded exploitation. First, the attacker triggers a stack buffer overflow to gain control of the instruction pointer. Because the stack is marked as non-executable, they cannot simply jump to shellcode. Instead, they utilize Return-Oriented Programming (ROP) to chain together existing code snippets (gadgets) already present in the firmware.
The ROP chain is designed to perform two distinct actions:
- Locate the SMPU Control/Error Status Register.
- Write a value to that register that flips the GVLD bit to 0.
Once the SMPU is disabled, the ROP chain continues by writing to the memory address responsible for the airbag deployment mechanism. In the live demo, this resulted in the immediate triggering of the airbag. This is not a theoretical bug; it is a direct path from a memory corruption vulnerability to physical system manipulation. The specific vulnerabilities identified are tracked as CVE-2023-48010 and CVE-2024-33882.
Why This Matters for Pentesters
If you are performing a security assessment on automotive hardware, you cannot assume that the presence of an MPU or SMPU provides a "robust security posture." You must verify whether the configuration registers for these units are truly protected from modification. During an engagement, look for the documentation regarding the "Lock" bits or "Read-Only" bits for these registers. If the hardware allows a privileged user to clear these bits, your access control bypass is trivial.
This research also serves as a reminder to check the OWASP Broken Access Control guidance, even when dealing with hardware. While the guidance is often web-focused, the principle remains: if the mechanism enforcing the access control can be disabled by the entity it is supposed to restrict, the control is broken.
Defensive Considerations
Defending against this class of vulnerability is difficult because it is a hardware-level flaw. You cannot patch the silicon. However, you can make exploitation significantly harder. First, ensure that all memory corruption vulnerabilities—like the stack buffer overflows used here—are mitigated through rigorous input validation and the use of safe memory handling functions. Second, if you are a firmware developer, minimize the attack surface by ensuring that no code running with higher privileges than necessary has access to the SMPU configuration registers.
Ultimately, this research forces us to re-evaluate our trust in hardware-based security features. When the hardware itself provides the tools to disable its own protections, the security of the entire system rests entirely on the integrity of the software running on it. If you are auditing these devices, stop looking for "if" the memory is protected and start looking for "how" that protection can be turned off.
Vulnerability Classes
Tools Used
OWASP Categories
Up Next From This Conference

BestFit: Unveiling Hidden Transformers in Windows ANSI

Wi-Fi Calling: Revealing Downgrade Attacks and Not-so-private Private Keys

The CVSS Deception: How We've Been Misled on Vulnerability Severity
Similar Talks

Hacking Apple's USB-C Port Controller

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

