CVE-2024-13942: Rockchip RK3588s Secure BootROM TOCTOU (time-of-check to time-of-use) vulnerability leading to arbitrary code execution with highest privileges
Secure BootROM of RK3588s SoC is vulnerable to a time-of-check to time-of-use attack in case of booting from external media (SPI NOR or NAND, EMMC or SD).
The code reads the header of the next-stage loader twice. The header contains hashes of the executable modules and is signed with a private key, the public part of which is verified against the SHA256 digest blown in the OTP.
The first read is only partial and contains only the hashes of the executable modules. The second is complete, including the header signature.
Although the header is verified based on the fully read data, the authenticity of the executable modules is checked against the partial data from the first read.
An attacker with physical access to a device containing RK3588s SoC can easily modify the next-stage loader data on-the-fly using a low-cost SD-card or SPI NOR/NAND or EMMC emulator. Even a simple ultra low-cost circuit comprising two memory chips (containing the same data but different headers - the original and the modified one) and a multiplexer can be used to carry out an attack.
This can lead to arbitrary code execution with the highest privileges available (EL3). This issue affects RK3588s: RK3588s SoC BootROM (secure) 350B20210512V100 and possibly others. As remediation apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable https://www.rock-chips.com/a/en/products/RK35Series/2022/0926/1660.html
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Mitigate the RK3588s Secure BootROM TOCTOU vulnerability by following Rockchip vendor-provided mitigations; if mitigations are unavailable for the affected device/boot scenario, discontinue use of the product as stated in the provided Rockchip advisory.
Event History
Frequently Asked Questions
Which devices are exposed to this issue?
Devices containing the RK3588s SoC are affected when they boot from external media, including SPI NOR, NAND, eMMC, or SD media. Exploitation requires physical access to the device and the ability to manipulate the next-stage loader data during boot.
Does Secure Boot prevent exploitation?
No. The vulnerability is in the Secure BootROM verification flow: executable modules can be authenticated against header data read earlier, while the signature is verified against a separately read full header. An attacker can swap or alter the loader data between these reads to obtain arbitrary code execution at EL3.
What is required to carry out the attack?
The attacker needs physical access and hardware capable of emulating or modifying the external boot medium on the fly. The described attack can be implemented with low-cost SD-card, SPI NOR/NAND, or eMMC emulation hardware, including a simple two-memory-chip and multiplexer setup.