Activity log for bug #1811722

Date Who What changed Old value New value Message
2019-01-14 21:12:27 dann frazier bug added bug
2019-01-14 21:12:27 dann frazier attachment added Console log w/ debug firmware https://bugs.launchpad.net/bugs/1811722/+attachment/5229053/+files/console.log
2019-01-14 21:12:39 dann frazier bug task added shim-signed (Ubuntu)
2019-01-14 21:14:39 dann frazier description On some firmware, attempting SecureBoot on arm64 will result in a crash. This is reproducible with a build EDK2 for the ArmVirtQemu target, but not with the older version we have packaged (edk2 0~20181115.85588389-2ubuntu1). The reason appears to be that our older version of edk2 had the firmware flash mapped at 0x0, which allowed NULL pointer dereferences to silently succeed. Latest upstream has changed that, so now such accesses result in a Synchronous Exception. With SecureBoot disabled, we can boot successfully with the old firmware. However, I've found that this results in a corrupted firmware image, making subsequent boots fail. It maybe that the memory access that leads to the Synchronous Exception on newer firmware is a write to the firmware region that is causing the corruption, and therefore the same underlying root cause. Note that I can also reproduce this with latest upstream GRUB. I looked for possible fixes for this in shim upstream, in case it is a problem with how shim invokes GRUB - or an issue with the Protocols shim registers. The only change I see that might be relevant that we don't already have is "6df7a8f Fix for "Section 0 has negative size" error when loading fbaa64.efi", but I could still reproduce after applying that. On some firmware, attempting SecureBoot on arm64 will result in a crash. This is reproducible with a build of latest upstream EDK2 for the ArmVirtQemu target, but not with the older version we have packaged (edk2 0~20181115.85588389-2ubuntu1). The reason appears to be that our older version of edk2 had the firmware flash mapped at 0x0, which allowed NULL pointer dereferences to silently succeed. Latest upstream has changed that, so now such accesses result in a Synchronous Exception. Even though we can boot in SecureBoot mode successfully with the old firmware, I've found that doing so results in a corrupted firmware image, making subsequent boots fail. It maybe that the memory access that leads to the Synchronous Exception on newer firmware is a write to the firmware region that is causing the corruption, and therefore the same underlying root cause. Note that I can also reproduce this with latest upstream GRUB. I looked for possible fixes for this in shim upstream, in case it is a problem with how shim invokes GRUB - or an issue with the Protocols shim registers. The only change I see that might be relevant that we don't already have is "6df7a8f Fix for "Section 0 has negative size" error when loading fbaa64.efi", but I could still reproduce after applying that.
2019-01-15 19:33:45 dann frazier bug added subscriber Ard Biesheuvel
2019-01-15 20:50:20 Mathieu Trudel-Lapierre grub2-signed (Ubuntu): status New Invalid
2019-01-15 23:07:31 dann frazier bug task added gnu-efi (Ubuntu)
2019-01-15 23:18:51 dann frazier gnu-efi (Ubuntu): status New Confirmed
2019-01-15 23:18:54 dann frazier shim-signed (Ubuntu): status New Confirmed
2019-01-15 23:24:38 dann frazier summary arm64: GRUB crashes in SecureBoot mode w/ some firmware arm64: shim crashes in SecureBoot mode w/ some firmware
2019-03-08 05:12:10 dann frazier bug task added shim (Ubuntu)
2019-03-08 17:51:23 dann frazier shim (Ubuntu): status New In Progress
2019-03-28 14:54:18 dann frazier gnu-efi (Ubuntu): status Confirmed Invalid
2019-03-28 14:54:26 dann frazier shim (Ubuntu): status In Progress Fix Committed
2019-03-28 14:54:27 dann frazier shim-signed (Ubuntu): status Confirmed Fix Committed
2019-05-18 01:47:23 Mathew Hodson bug task deleted gnu-efi (Ubuntu)
2019-05-18 01:47:29 Mathew Hodson bug task deleted grub2-signed (Ubuntu)
2020-02-10 14:23:14 Launchpad Janitor shim (Ubuntu): status Fix Committed Fix Released
2020-09-16 16:43:40 Julian Andres Klode shim-signed (Ubuntu): status Fix Committed Fix Released