█████╗ ██████╗ ███████╗ █████╗ ██╗ ██╗ ██╗ ██╔══██╗ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ ██║ ███║ ███████║ ██████╔╝ █████╗ ███████║ ███████║ ╔██║ ██╔══██║ ██╔══██╗ ██╔══╝ ██╔══██║ ╔════██║ ██║ ██║ ██║ ██║ ██║ ███████╗ ██║ ██║ ██║ ██║ ╔═╝ ╔═╝ ╔═╝ ╔═╝ ╔══════╝ ╔═╝ ╔═╝ ╔═╝ ╔═╝
. * . . *
* . *
.-~~~-.
__|_______|__
( . . . . )
'~~~~~~~~~~~~~'
| |
* . . *
. * . .
Modern CPUs rely on microcode to bridge complex architectural instructions and simple hardware execution units. Because hardware bugs are costly, manufacturers ship transient microcode updates applied during system boot. For security researchers Kaya Ercihan and Antonio Vazquez Blanco, these proprietary updates presented a black box. Their initial goal was to audit the cryptographic coprocessor powering AMD's hardware random number generator, specifically the RDC instruction, for potential entropy-lowering vulnerabilities. Finding no public documentation and no standard way to reverse-engineer AMD Zen 5 microcode, they pivoted to building the fundamental parsing infrastructure themselves.
Since AMD does not make raw microcode files broadly public and kernel loaders carry restrictive licenses, they wrote their own clean-room Python scripts to extract individual patches from Linux firmware containers. They developed a scraping tool to comb public firmware repositories, ultimately building an open-source database of over 400 normalized microcode patches. To correlate these opaque binaries with known issues, they crawled AMD security bulletins and mapped raw microcode revision IDs to public disclosures. This allowed them to link specific files to known flaws like the RDC entropy bug, CVE-2025-62626, detailed in AMD SB-7055.
Analyzing the structure of the updates revealed that AMD's patching mechanism functions like a hardware breakpoint: match and mask registers redirect execution from the immutable ROM to the newly loaded patch RAM. To analyze the payloads, the researchers first had to filter out encrypted patches, which AMD uses for certain updates, by measuring the file's entropy. For the plaintext payloads, they built a Binary Ninja plugin called Senella, part of their Zenith project. The plugin automatically strips non-executable headers, validates signatures, and uses statistical heuristics like operand entropy and occurrence frequency to tag potential microcode opcodes, laying the groundwork for verifiable microcode auditing.