Files
u-boot/lib
Heinrich Schuchardt bc82aa5b41 efi_loader: validate PE-COFF relocation data
When applying base relocations from a PE-COFF binary all data must
be treated as untrusted. Add the following checks to
efi_loader_relocate():

* Reject relocation blocks that don't start on a 32-bit aligned
  address.
* Reject relocation blocks whose SizeOfBlock is smaller than the
  block header, which would cause an unsigned underflow when computing
  the entry count.
* A block with SizeOfBlock == 0 is invalid and does not mark the end of
  the relocation table.
* Reject relocation blocks that extend beyond the end of the
  relocation section.
* Reject individual relocation entries whose target offset, together
  with the access width, exceeds the mapped image size, preventing
  out-of-bounds writes.

Pass virt_size to efi_loader_relocate() from efi_load_pe() to enable
the per-entry bounds check.

Reported-by: Anas Cherni <anas@calif.io>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2026-06-07 16:43:06 +02:00
..
2026-05-11 12:04:43 -06:00
2025-04-11 12:16:44 -06:00
2024-07-15 12:12:18 -06:00
2024-07-15 12:12:18 -06:00
2025-04-11 12:16:44 -06:00
2024-07-15 12:12:18 -06:00
2025-07-26 07:34:31 +02:00
2024-07-15 12:12:18 -06:00
2024-10-11 11:44:48 -06:00
2024-07-15 12:12:18 -06:00
2024-07-15 12:12:18 -06:00
2024-07-15 12:12:18 -06:00
2024-07-15 12:12:18 -06:00
2025-02-03 16:01:36 -06:00
2025-02-03 16:01:36 -06:00
2024-12-06 17:47:23 -06:00
2025-04-03 16:54:49 -06:00
2019-12-06 16:44:20 -05:00
2024-12-06 17:47:23 -06:00
2025-01-18 17:12:47 -06:00
2024-12-06 17:47:23 -06:00
2026-02-11 11:13:47 +02:00
2020-08-24 14:11:31 -04:00
2024-11-13 08:14:23 -06:00
2025-01-28 08:58:41 +02:00
2025-12-04 09:38:58 -06:00
2022-01-19 18:11:34 +01:00
2024-10-14 17:58:30 -06:00
2025-12-04 09:38:58 -06:00
2025-04-23 13:19:44 -06:00
2026-04-21 11:19:49 -06:00