yegor

@yegor@infosec.exchange
11 Followers
79 Following
100 Posts
security researcher and reverse engineer
GitHubhttps://github.com/yeggor

The embargo is over, so here it is: https://coderush.me/hydroph0bia-part1/

I can't stress the "NEVER USE NVRAM AS TRUSTED STORAGE" part harder, but now we all have a very nice example of a thing to not ever do, or have your SecureBoot and FW updater signing being vulnerable to all people who can set non-volatile RT variables by calling a dedicated OS API.

Hydroph0bia (CVE-2025-4275) - a trivial SecureBoot bypass for UEFI-compatible firmware based on Insyde H2O, part 1

The DWARF debug format is well-known for debugging executables,
but it is also an effective format for sharing reverse engineering information
across various tools, such as IDA, BinaryNinja, Ghidra, and Radare2.

In this blog post, I introduce a new high-level API in LIEF that allows the
creation of DWARF files. Additionally, I present two plugins designed to export
program information from Ghidra and BinaryNinja into a DWARF file.

https://lief.re/blog/2025-05-27-dwarf-editor/

(Bonus: The blog post includes a DWARF file detailing my reverse engineering work on DroidGuard)

We're are happy to announce a new release of our #Rust bindings for
@HexRaysSA idalib.

What's new:
- New APIs for working with IDBs, segments, and more
- Rust 2024 support
- New homepage: https://idalib.rs

H/T to our contributors @yegor & @raptor

https://github.com/binarly-io/idalib.git

idalib documentation

Now this looks like a pretty kick ass project: FUZZUER: Enabling Fuzzing of
UEFI Interfaces on EDK-2 https://www.ndss-symposium.org/wp-content/uploads/2025-400-paper.pdf and source at https://github.com/BreakingBoot/FuzzUEr

PSA: If you want to test updating your UEFI KEK before everyone else, you can do `fwupdmgr enable-remote lvfs-testing` and then `fwupdmgr update` -- not all vendors are uploaded yet, and the CDN is still syncing -- so it might be a few hours before they're all visible.

See https://fwupd.github.io/libfwupdplugin/uefi-db.html for more details. The UEFI db update that uses the KEK update will follow soon. You also need fwupd 2.0.9 -- which is kinda new -- but now available in Fedora 42 if that helps.

FwupdPlugin: UEFI Secure Boot Certificates

Reference for FwupdPlugin-1.0: UEFI Secure Boot Certificates

We've been teasing it for a while, but the full features of Firmware Ninja are officially available on dev and will be in the 5.0 release later this month! Doing reverse engineering of embedded firmware? Check out how FWN can make your life better:

https://binary.ninja/2025/04/02/firmware-ninja.html

Binary Ninja - Embedded Reverse Engineering with Firmware Ninja

Binary Ninja is a modern reverse engineering platform with a scriptable and extensible decompiler.

Binary Ninja
Paged Out! #6 has arrived! And it's jam-packed with content!
You can download it here:
https://pagedout.institute/?page=issues.php
Paged Out!

Wow, __builtin_dump_struct is an amazing clang feature, how did I never hear about this before?

$ cat test.c
#include <stdio.h>

struct nested {
int n;
};
struct foo {
int member_a;
unsigned long member_b;
char *str;
void *ptr;
struct nested nested;
};

int main(void) {
struct foo f = {
.member_a = 123,
.member_b = 0x4141414141414141,
.str = "foobar",
.ptr = &f,
.nested = {.n = 42}
};
__builtin_dump_struct(&f, printf);
}
$ clang -o test test.c && ./test
struct foo {
int member_a = 123
unsigned long member_b = 4702111234474983745
char * str = "foobar"
void * ptr = 0x7fff1df41b78
struct nested nested = {
int n = 42
}
}

The original version of this feature was introduced back in 2018 (though it was reimplemented since in 2022).

Clang Language Extensions — Clang 21.0.0git documentation

There are still some missing boot structures to fill, bot overall now go-boot can find and allocate memory for relocating a complex Linux kernel, RAM disk and switch to it.

Here shown the latest Arch Linux kernel and ram disk booted by a pure Go UEFI boot manager.

The Meta Bug. The story of a bug that affects itself by preventing its own resolution.

https://obdev.at/blog/the-meta-bug

The Meta Bug

Well, not that Meta. The other one. This is the story of a bug that affects itself by preventing its own resolution. As much as we would like all software to be bug-free, it isn’t. But the least we can do as software developers, if we discover a…

Objective Development
×

There are still some missing boot structures to fill, bot overall now go-boot can find and allocate memory for relocating a complex Linux kernel, RAM disk and switch to it.

Here shown the latest Arch Linux kernel and ram disk booted by a pure Go UEFI boot manager.