ACK: [PATCH] tpmevlog: Correct boundary checking for PCR4 event check
ivanhu
ivan.hu at canonical.com
Mon Sep 18 09:00:41 UTC 2023
Thanks Mario,
Acked-by: Ivan Hu<ivan.hu at canonical.com>
On 9/15/23 12:20, Mario Limonciello wrote:
> The boundary checking looks when PCR 4 and `EV_EFI_BOOT_SERVICES_APPLICATION`
> that the size is greater than `uefi_image_load_event`.
>
> This test fails when loading a PE binary for a kernel image which is exactly
> the size of `uefi_image_load_event`.
>
> Furthermore, a kernel image may not have a device path specified, so don't
> bail if that's zero size.
>
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
> src/tpm/tpmevlog/tpmevlog.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/tpm/tpmevlog/tpmevlog.c b/src/tpm/tpmevlog/tpmevlog.c
> index 96f71ffe..794b47ca 100644
> --- a/src/tpm/tpmevlog/tpmevlog.c
> +++ b/src/tpm/tpmevlog/tpmevlog.c
> @@ -161,7 +161,7 @@ static int tpmevlog_pcr_type_event_check(
> uefi_image_load_event *ev_image_load = (uefi_image_load_event *)event;
>
> if (pcr == 4 && event_type == EV_EFI_BOOT_SERVICES_APPLICATION) {
> - if (event_size <= sizeof(uefi_image_load_event)) {
> + if (event_size < sizeof(uefi_image_load_event)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "ImageLoadEventLength",
> "The length of the event is %" PRIu32 " which"
> " is smaller than the UEFI Image Load Event "
> @@ -171,7 +171,8 @@ static int tpmevlog_pcr_type_event_check(
> event_size);
> return FWTS_ERROR;
> }
> - if (ev_image_load->length_of_device_path <= sizeof(fwts_uefi_dev_path)) {
> + if (ev_image_load->length_of_device_path &&
> + ev_image_load->length_of_device_path <= sizeof(fwts_uefi_dev_path)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "ImageLoadDevicePathLength",
> "The length of the device path is %" PRIu64
> " is smaller than DevicePath of PE/COFF image "
More information about the fwts-devel
mailing list