The UART interface is a powerful tool for troubleshooting and configuring embedded systems. It provides direct access to the firmware and is a primary target for attackers. But how secure are common protective measures really?
Access to the firmware: Connecting the UART TX pin and the eMMC Data0 pin to an oscilloscope of type DS1180A.
(Image: Keysight Technologies)
UART (Universal Asynchronous Receiver-Transmitter) is widely used in device hardware as a debugging interface. Communication is remarkably simple, relying on just three lines: Transmit (TX), Receive (RX), and Ground (GND). For attackers, however, UART represents the ultimate 'Golden Ticket,' as the interface frequently provides unauthorized low-level access—in extreme cases, even to an unauthenticated root shell. Consequently, manufacturers face the challenge of securing UART in a way that allows authorized personnel to use it while locking out malicious actors. The following analysis of a real-world case demonstrates that even a highly secured implementation is not an insurmountable obstacle.
The Physical Trace Search
Image 1: Four-pin connector next to the eMMC flash chip.
(Image: Keysight Technologies)
The first step is to establish a physical connection to the target device. This involves searching for test pads on the circuit board, which are usually arranged in groups of three or four pins. On the examined device (Image 1), there was a promising connection area for a four-pin connector located near an eMMC chip. Identifying the pins is a classic measurement process. Ground (GND) can be quickly determined using a continuity test against a known ground plane (e.g., a grounded screw or shielding). The supply voltage (VCC) is often identifiable by a thicker trace leading away from the pin. In this case, the testing revealed: Pin 1 carries voltage, and Pin 4 is ground.
Signal Analysis on the Oscilloscope
Image 2: The oscilloscope displays a very clear rectangular signal.
(Image: Keysight Technologies)
Image 3: Measurement of a single pulse in the rectangular signal.
(Image: Keysight Technologies)
To differentiate between TX and RX, an oscilloscope is the most efficient tool. Since the TX pin transmits data, it displays an irregular rectangular signal during the boot process. The RX pin, on the other hand, remains passive as it only waits for incoming data. Connecting the oscilloscope probe to pin 2 of the mysterious connector confirmed the data flow: Pin 2 is TX, and consequently, pin 3 is RX.
The next challenge is decoding the data. Since UART does not use a clock signal for synchronization, the baud rate must be known. This can be determined from the square wave signal: the smallest pulse (a single data bit) is measured. As shown in Image 2, the amplitude (ΔY) was approximately 3.3 V, which is a standard voltage for UART. The measured frequency (ΔX) was about 116,280 Hz. Considering standard baud rates, a target value of 115,200 baud was determined. With these parameters, a USB-to-UART adapter was connected to monitor the device's communication via a laptop.
The Security Barriers of the Firmware
Image 4: The UART output with boot messages, specifically "bootdelay" and "bootstopkeysha256".
(Image: Keysight Technologies)
After establishing the hardware connection, there’s initial disappointment: the device's boot messages do not lead to a shell prompt or an interactive interface. A standard attack involves interrupting the automatic boot process with keyboard combinations like Ctrl+C to access the bootloader's configuration environment. Here, boot parameters could be modified to make the system launch an interactive shell (/bin/sh) instead of the standard script. However, the examined device was protected against such attempts.
The analysis of the boot messages (Image 4) revealed two key security mechanisms:
bootdelay = -3: This value completely disables the time window for interrupting the boot process. Even massive data floods at the RX pin, a common trick to catch the boot process, prove ineffective here.
bootstopkeysha256: Even with a successful interruption, the system requires a password. The corresponding password hash was output in the log. Although the password in this case was identified through brute-force as "password12345," the path for entry was blocked due to the missing boot delay.
Disrupting the eMMC Memory
When access is denied on the software level, manipulation must target the hardware level. A well-known method by Brad Dixon (Carve Systems) involves disrupting the firmware loading process by grounding the data line of the storage medium (in this case, the data0 pin of the eMMC) at the right moment [1]. The aim is to cause the system to abort the automatic boot process due to a read error, hoping it will fall back into a recovery bootloader shell.
Here too, the device's design proved resilient. Extensive validation checks were performed during booting:
A Shmoo plot validation checked the functionality of the entire eMMC.
Encryption certificates were read and verified.
Any error during these sensitive phases did not cause a fallback to a shell but instead led to an immediate system halt with the prompt: ERROR ### Please RESET the board ###. Precise timing was therefore crucial.
Automated Fault Injection
Image 5: The automatic boot process is interrupted, and the bootloader password is requested.
(Image: Keysight Technologies)
After closely examining the boot messages, an extremely short time window was identified between the completion of validation and the kernel's attempt to load the operating system. To precisely hit this window, a glitch pattern generator (Keysight DS1180A) was used [2]. This tool monitors the UART data stream in real-time. As soon as a predefined text phrase appears in the boot messages, the device automatically triggers a glitch (shorting the data0 line to ground). The standout feature: the timing is adjustable to within microsecond precision.
The analysis revealed that the time window during which the glitch can successfully stop the boot process without crashing the system is approximately four seconds. In the highly precise world of fault injection, where glitches often need to be set within nanoseconds between individual CPU instructions, this is an unusually long timeframe. Nevertheless, this automated trigger proved to be the key to success: the automatic boot process was interrupted, and access to the protected configuration was unlocked.
Date: 08.12.2025
Naturally, we always handle your personal data responsibly. Any personal data we receive from you is processed in accordance with applicable data protection legislation. For detailed information please see our privacy policy.
Consent to the use of data for promotional purposes
I hereby consent to Vogel Communications Group GmbH & Co. KG, Max-Planck-Str. 7-9, 97082 Würzburg including any affiliated companies according to §§ 15 et seq. AktG (hereafter: Vogel Communications Group) using my e-mail address to send editorial newsletters. A list of all affiliated companies can be found here
Newsletter content may include all products and services of any companies mentioned above, including for example specialist journals and books, events and fairs as well as event-related products and services, print and digital media offers and services such as additional (editorial) newsletters, raffles, lead campaigns, market research both online and offline, specialist webportals and e-learning offers. In case my personal telephone number has also been collected, it may be used for offers of aforementioned products, for services of the companies mentioned above, and market research purposes.
Additionally, my consent also includes the processing of my email address and telephone number for data matching for marketing purposes with select advertising partners such as LinkedIn, Google, and Meta. For this, Vogel Communications Group may transmit said data in hashed form to the advertising partners who then use said data to determine whether I am also a member of the mentioned advertising partner portals. Vogel Communications Group uses this feature for the purposes of re-targeting (up-selling, cross-selling, and customer loyalty), generating so-called look-alike audiences for acquisition of new customers, and as basis for exclusion for on-going advertising campaigns. Further information can be found in section “data matching for marketing purposes”.
In case I access protected data on Internet portals of Vogel Communications Group including any affiliated companies according to §§ 15 et seq. AktG, I need to provide further data in order to register for the access to such content. In return for this free access to editorial content, my data may be used in accordance with this consent for the purposes stated here. This does not apply to data matching for marketing purposes.
Right of revocation
I understand that I can revoke my consent at will. My revocation does not change the lawfulness of data processing that was conducted based on my consent leading up to my revocation. One option to declare my revocation is to use the contact form found at https://contact.vogel.de. In case I no longer wish to receive certain newsletters, I have subscribed to, I can also click on the unsubscribe link included at the end of a newsletter. Further information regarding my right of revocation and the implementation of it as well as the consequences of my revocation can be found in the data protection declaration, section editorial newsletter.
A Conclusion
The case highlights that UART interfaces remain vulnerable despite restrictive software configurations and password protection. The combination of classic signal analysis with an oscilloscope and modern fault injection demonstrates the limitations of purely software-based security concepts. For embedded system developers, this means that security must not only be addressed in the code but also through physical hardening of the hardware. This can be achieved, for example, by deactivating debug pins during mass production. (heh)