** Description changed: [Impact] Compressed kernels as we have on arm64 cause grub to fail in two ways: 1. In all versions, grub-check-signatures will fail to verify the binaries using sbverify, complain about that in debconf, and then abort - the installation/upgrade of grub-efi-arm64-signed + the installation/upgrade of grub-efi-arm64-signed, kernel and grub + upgrades can hence not be installed on secure boot systems. 2. In 2.06, the verifiers framework runs before any decompression, causing the kernels to fail verification, as it tries to verify the compressed data. In grub 2.04, we manually verified the file after we had opened it (hence after all filters). The rest of the SRU template only refers to point 1, as point 2 only applies to the development series jammy. [Attack plan] 1. Modify grub-check-signatures to optionally decompress kernels before passing them to sbverify 2. Modify grub to either a) verify after decompress b) disable shim_lock verifier on arm64, and only use the rhboot We do not know if this is a long-term solution, we really should migrate back to kernels that are proper EFI executables themselves such that we can use standard EFI functions to run them as well. [Test plan] On a secure boot ARM64 VM: 1) Run grub-check-signatures to ensure it verifies the kernels successfully [Where problems could occur] We only modify the grub-check-signatures script in the SRU to add decompression. This could change the behavior of the script, and introduce new bugs that cause false positives or false negatives.
** Description changed: [Impact] Compressed kernels as we have on arm64 cause grub to fail in two ways: 1. In all versions, grub-check-signatures will fail to verify the binaries using sbverify, complain about that in debconf, and then abort the installation/upgrade of grub-efi-arm64-signed, kernel and grub upgrades can hence not be installed on secure boot systems. 2. In 2.06, the verifiers framework runs before any decompression, causing the kernels to fail verification, as it tries to verify the compressed data. In grub 2.04, we manually verified the file after we had opened it (hence after all filters). The rest of the SRU template only refers to point 1, as point 2 only applies to the development series jammy. [Attack plan] 1. Modify grub-check-signatures to optionally decompress kernels before passing them to sbverify 2. Modify grub to either a) verify after decompress b) disable shim_lock verifier on arm64, and only use the rhboot We do not know if this is a long-term solution, we really should migrate back to kernels that are proper EFI executables themselves such that we can use standard EFI functions to run them as well. [Test plan] On a secure boot ARM64 VM: - 1) Run grub-check-signatures to ensure it verifies the kernels - successfully + 1) Run grub-check-signatures to ensure it verifies the kernels successfully + 2) Install kernel upgrade and reboot into it [Where problems could occur] We only modify the grub-check-signatures script in the SRU to add decompression. This could change the behavior of the script, and introduce new bugs that cause false positives or false negatives. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1954683 Title: grub is missing secure boot support for compressed kernels (our arm64 kernels) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1954683/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
