[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#926596: fwupdate: arm64 version of PE/COFF efi binary is corrupt



On Mon, 8 Apr 2019 at 02:07, <Mario.Limonciello@dell.com> wrote:
>
> Would you be able to check if this also affects fwupd?  The fwupdate binary was also merged into that project a while back and I would suspect it's affecting both.
>

I've had a report that Fedora's version of the fwupdmgr .efi helper is
broken, but looking at the binary [0], it appears to be a different
problem.

PE header starts at 0x40 'PE'

00000040  50 45 00 00 64 aa 02 00  00 00 00 00 00 00 00 00
00000050  01 00 00 00 a0 00 06 02  0b 02 02 14 00 a0 00 00
00000060  00 1c 00 00 00 00 00 00  00 10 00 00 00 10 00 00
00000070  00 00 00 00 00 00 00 00  00 10 00 00 00 02 00 00

The section alignment and file alignment are at offsets 0x78 and 0x7c,
respectively, so 0x1000 and 0x200 which looks fine.

00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000090  00 cc 00 00 00 10 00 00  00 00 00 00 0a 00 00 00

Total file size at 0x90, which is 0xcc00

000000f0  00 00 00 00 00 00 00 00  2e 74 65 78 74 00 00 00  |.........text...|
00000100  00 a0 00 00 00 10 00 00  00 a0 00 00 00 10 00 00  |................|

Size and offset of .text section at 0x100 and 0x104: 0xa000 bytes @ 0x1000

00000120  2e 64 61 74 61 00 00 00  00 1c 00 00 00 b0 00 00  |.data...........|

Size and offset of .data section at 0x128 and 0x12c: 0x1c00 bytes @
0xb000, which brings the total file size to 0xcc00 just like in the
main header.

[0] http://people.linaro.org/~ard.biesheuvel/fwupdaa64.efi-f29








> -----Original Message-----
> From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Sent: Sunday, April 7, 2019 10:46 PM
> To: Debian Bug Tracking System
> Subject: Bug#926596: fwupdate: arm64 version of PE/COFF efi binary is corrupt
>
>
> [EXTERNAL EMAIL]
>
> Package: fwupdate
> Version: 12-4
> Severity: important
>
> Dear Maintainer,
>
> Version 12-4 of fwupdate is broken for arm64. The included binary fwupaa64.efi is corrupt, resulting in EFI_LOAD_ERROR to be returned by the firmware when trying to invoke it.
>
> The binary layout looks like this:
>
> Detected 'AArch64' type PE/COFF image consisting of 2 sections Section alignment: 0x1000 File alignment: 0x200 Image size: 0xd890 Section '.text' @ 0x00001000 File offset: 0x1000 Virtual size: 0xac20 Raw size: 0xac20 Section '.data' @ 0x0000bc20 File offset: 0xbc20 Virtual size: 0x1d70 Raw size: 0x1d70
>
> Note that file offset + size of section #2 exceeds the total image size. But the file offset of that section is not even a multiple of the file alignment, so the whole image seems pretty broken.
>
>
>
> -- System Information:
> Debian Release: 9.8
>   APT prefers stable
>   APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'testing')
> Architecture: arm64 (aarch64)
>
> Kernel: Linux 5.1.0-rc2+ (SMP w/24 CPU cores; PREEMPT)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> Versions of packages fwupdate depends on:
> ii  e2fsprogs    1.43.4-2
> ii  efibootmgr   14-2
> ii  libc6        2.28-8
> ii  libefiboot1  37-2
> ii  libefivar1   37-2
> ii  libfwup1     12-4
> ii  libpopt0     1.16-10+b2
>
> Versions of packages fwupdate recommends:
> ii  fwupdate-arm64-signed [fwupdate-signed]  12+4
>
> fwupdate suggests no packages.
>
> -- no debconf information
>


Reply to: