)]}'
{
  "commit": "bc82aa5b4145eba47f57e6f7148e0fa45bc16f51",
  "tree": "48d7d131fe831f3328e82603357a600564a3f14f",
  "parents": [
    "badf7502827bc8f77cb4c572e5186584deea7a89"
  ],
  "author": {
    "name": "Heinrich Schuchardt",
    "email": "heinrich.schuchardt@canonical.com",
    "time": "Mon Jun 01 15:20:53 2026 +0200"
  },
  "committer": {
    "name": "Heinrich Schuchardt",
    "email": "heinrich.schuchardt@canonical.com",
    "time": "Sun Jun 07 16:43:06 2026 +0200"
  },
  "message": "efi_loader: validate PE-COFF relocation data\n\nWhen applying base relocations from a PE-COFF binary all data must\nbe treated as untrusted. Add the following checks to\nefi_loader_relocate():\n\n* Reject relocation blocks that don\u0027t start on a 32-bit aligned\n  address.\n* Reject relocation blocks whose SizeOfBlock is smaller than the\n  block header, which would cause an unsigned underflow when computing\n  the entry count.\n* A block with SizeOfBlock \u003d\u003d 0 is invalid and does not mark the end of\n  the relocation table.\n* Reject relocation blocks that extend beyond the end of the\n  relocation section.\n* Reject individual relocation entries whose target offset, together\n  with the access width, exceeds the mapped image size, preventing\n  out-of-bounds writes.\n\nPass virt_size to efi_loader_relocate() from efi_load_pe() to enable\nthe per-entry bounds check.\n\nReported-by: Anas Cherni \u003canas@calif.io\u003e\nReviewed-by: Simon Glass \u003csjg@chromium.org\u003e\nReviewed-by: Ilias Apalodimas \u003cilias.apalodimas@linaro.org\u003e\nSigned-off-by: Heinrich Schuchardt \u003cheinrich.schuchardt@canonical.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d002eb0c7440755974336037948143471cfe92a6",
      "old_mode": 33188,
      "old_path": "lib/efi_loader/efi_image_loader.c",
      "new_id": "f9a2d2df405de4fff8dad24af9f3de86d01e306a",
      "new_mode": 33188,
      "new_path": "lib/efi_loader/efi_image_loader.c"
    }
  ]
}
