Depthcharge is a tool designed to aid security professionals in analyzing deployments of the popular U-Boot bootloader. This tool is one of many in Tetrel’s arsenal, but one that we use often when starting on a U-Boot based project. Since its inception in mid-2020, it has seen regular updates until v0.5.0 (April 2023).
Tetrel is pleased to announce that it will be maintaining a fork of the Depthcharge code in GitHub, starting with the v0.6.0 update. We would also like to thank Jon Szymaniak for starting the Depthcharge project, sharing his U-Boot expertise, and giving us his blessing to breathe new life into the project he created. Jon retains the right to choose the “codename” of each release. This has always been a punk song title, increasing alphabetically. For v0.6.0, Jon has chosen the codename Gacked On Anger.
Head over to our GitHub page for more information about Depthcharge, and as always, the full documentation is published at Read the Docs.
What’s New in v0.6.0 #
Much of the backlog of issues since 2023 have been addressed. Additionally several new checkers have been added to detect the following CVEs:
Additionally, checkers for CONFIG_ENV_IS_IN_
configuration settings were added.
About Das U-Boot #
Das U-Boot, or U-Boot, is an open-source bootloader used to bootstrap the operating system in embedded devices. Due to its customizability, it is a favourite among SoC vendors, which often provide a customized U-Boot bootloader as part of their BSP. It features support for many hardware platforms and architectures, as well as a boot console for easy configuration and maintenance. Proper configuration of U-Boot, or any bootloader, is critical for security of embedded devices. Misconfigured bootloaders often allow secure boot protections to be bypassed, permitting the device to run malicious code.
Future Plans #
Tetrel is committed to updating Depthcharge so that it remains relevant to the latest version of U-Boot. Here is a high-level overview of things to come in the near future:
- ARM support will be updated and bugs pertaining to triggering data aborts will be fixed.
- Fixes for timing related issues with UART communication on slower devices.
- General code clean up (thanks for the suggestions Jon!).
- Documentation updates.
We are considering a couple larger features that would help with using the tool:
- RemoteSerialConsole support for accessing consols over TCP.
- Filesystem manipulation and dumping API.
As always, feel free to submit issues, patches, or ideas through the official project GitHub page.