GRUB's Secure Boot implementation loads unsigned kernel without warning
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
grub2 (Ubuntu) |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Trusty |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Xenial |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Bionic |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
grub2-signed (Ubuntu) |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Trusty |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Xenial |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Bionic |
Fix Released
|
High
|
Mathieu Trudel-Lapierre |
Bug Description
[Rationale]
GRUB should help us enforce that in UEFI mode, only signed kernels are loaded. It should not silently fall back to loading unsigned kernels.
[Impact]
All our users booting in UEFI; on all supported releases.
[Test cases]
= grub2 =
Booting unsigned kernels:
1) Try to boot a custom kernel
2) Verify that the kernel will not be loaded by grub (you should see an error message about the signature)
Booting signed kernels:
1) Try to boot an official signed kernel (from -release or -updates)
2) Verify that the system boots normally and no warnings are shown about signature.
[Regression Potential]
Any failure to boot presenting as a failure to load the kernel from within grub, with an "invalid signature" type error message or not, should be investigated as a potential regression of this stable update.
---
Me and some other students have conducted some various experiments on Secure Boot enabled machines. The main focus of the tests was to circumvent Secure Boot and load unsigned kernels or kernels that have been signed with other keys.
On your SecureBoot (https:/
With the current approach the purpose of Secure Boot is somewhat defeated, and the user doesn't know if the whole chain has been verified or not. It could easily be the case that an unsigned kernel has been loaded by Ubuntu without the user noticing. From our point of view, a better approach would be to inform the user that an unsigned kernel will be loaded and that the user can make a choice if he/she wants to proceed. The default action could be to accept the option, remember the user's option and sometimes remind the user of the fact that it is loading an unsigned kernel.
This problem is of course related to GRUB itself and not to Ubuntu itself. The reason for filing this bug and informing the SecurityTeam of Ubuntu is to ask for their opinions and what your point of view is on the current approach and to see if other users classify this as a "bug".
GRUB2 versions: grub-2.02~beta2, 1.34.1+
Ubuntu version: Trusty (will also affect newer and older versions, GRUB specific problem)
CVE References
tags: | added: grub2-signed |
description: | updated |
tags: | added: xenial |
Changed in grub2 (Ubuntu Trusty): | |
status: | Triaged → In Progress |
Changed in grub2-signed (Ubuntu Trusty): | |
status: | Triaged → In Progress |
Changed in grub2 (Ubuntu Trusty): | |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
Changed in grub2-signed (Ubuntu Trusty): | |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
Changed in grub2-signed (Ubuntu Xenial): | |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
Changed in grub2 (Ubuntu Xenial): | |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
status: | Triaged → In Progress |
Changed in grub2-signed (Ubuntu Xenial): | |
status: | Triaged → In Progress |
tags: |
added: verification-done-trusty removed: verification-needed-trusty |
Thanks for reporting this.
We aren't currently using SecureBoot for security reasons. Our SecureBoot support is only to allow installation on computers that have it enabled by default.
If we ever in the future rely on SecureBoot as a security measure, I agree a warning would be appropriate.