CVE-2025-7937
An attacker could trick the BMC administrator to update the BMC system with a custom image containing malicious content. This would result in the complete compromise of the BMC system, also providing access to the main host OS. It would also allow the attacker to make the attack persistent during a BMC component reboot and perform lateral movement within the compromised infrastructure, infecting other endpoints.
The firmware image for the X12STW-F
motherboard version 01.06.17
has the following regions defined in the fwmap
:
offset: 0x0000000, size: 0x00a6280, signed: true - bootloader
offset: 0x0100000, size: 0x0001000, signed: true - sig_table
offset: 0x0110000, size: 0x0010000, signed: true - pdb_seca
offset: 0x0130000, size: 0x031f900, signed: true - kernel
offset: 0x0530000, size: 0x275c080, signed: true - rootFS
offset: 0x2dc0000, size: 0x0010000, signed: false - pdb_isec
The fix for CVE-2024-10237
introduced two additional checks in the fwmap_parser
function: fwmap_offset_check
and fwmap_attr_check
. These checks ensure that fwmap
entries can't be located at a custom offset and fix the attributes they may have. However, since the fwmap
region is searched in the memory by the fwmap
signature, it is possible to place the custom fwmap
table before the original one, for example, at offset 0x40000
, which is not used by any other region. This modified fwmap
will then be used during image validation.
For example, it is possible to write all the signed regions one after another at offset 0x100000
, and introduce a custom fwmap
with this content:
offset: 0x100000, size: 0x2b32c00, signed: true - bootloader
Now, data before 0x100000
can be modified in an arbitrary way, allowing to control content of the BMC bootloader. At the same time, validation of such an image will still succeed.
This bug is subject to a 90 day disclosure deadline. After 90 days elapsed or a patch has been made broadly available (whichever is earlier), the bug report will become visible to the public.
BINARLY team