CVE-2020-14310
Published: 29 July 2020
There is an issue on grub2 before version 2.06 at function read_section_as_string(). It expects a font name to be at max UINT32_MAX - 1 length in bytes but it doesn't verify it before proceed with buffer allocation to read the value from the font value. An attacker may leverage that by crafting a malicious font file which has a name with UINT32_MAX, leading to read_section_as_string() to an arithmetic overflow, zero-sized allocation and further heap-based buffer overflow.
From the Ubuntu Security Team
Chris Coulson discovered that multiple integer overflows existed in GRUB2 when handling certain filesystems or font files, leading to heap-based buffer overflows. A local attacker could use these to execute arbitrary code and bypass UEFI Secure Boot restrictions.
Notes
Author | Note |
---|---|
alexmurray | grub2-signed is not supported in Ubuntu 12.04 ESM (precise/esm) and so marking the priority for grub2 in this release as low |
Priority
Status
Package | Release | Status |
---|---|---|
grub2 Launchpad, Ubuntu, Debian |
upstream |
Needs triage
|
focal |
Released
(2.04-1ubuntu26.1)
|
|
jammy |
Not vulnerable
(2.06-2ubuntu7)
|
|
kinetic |
Not vulnerable
(2.06-2ubuntu12)
|
|
lunar |
Not vulnerable
(2.06-2ubuntu16)
|
|
groovy |
Not vulnerable
(2.04-1ubuntu26.1)
|
|
hirsute |
Not vulnerable
(2.04-1ubuntu26.1)
|
|
bionic |
Released
(2.02-2ubuntu8.16)
|
|
trusty |
Released
(2.02~beta2-9ubuntu1.20)
Available with Ubuntu Pro or Ubuntu Pro (Infra-only) |
|
xenial |
Released
(2.02~beta2-36ubuntu3.26)
|
|
grub2-signed Launchpad, Ubuntu, Debian |
focal |
Released
(1.142.3)
|
jammy |
Not vulnerable
(1.182~22.04.1)
|
|
kinetic |
Not vulnerable
(1.185)
|
|
lunar |
Not vulnerable
(1.192)
|
|
groovy |
Not vulnerable
(1.147)
|
|
hirsute |
Not vulnerable
(1.147)
|
|
bionic |
Released
(1.93.18)
|
|
eoan |
Ignored
(end of life)
|
|
trusty |
Released
(1.34.22)
Available with Ubuntu Pro or Ubuntu Pro (Infra-only) |
|
upstream |
Needs triage
|
|
xenial |
Released
(1.66.26)
|
|
grub2-unsigned Launchpad, Ubuntu, Debian |
trusty |
Does not exist
|
xenial |
Needed
|
|
bionic |
Released
(2.04-1ubuntu47.4)
|
|
focal |
Released
(2.04-1ubuntu47.4)
|
|
jammy |
Not vulnerable
(2.06-2ubuntu7)
|
|
kinetic |
Not vulnerable
(2.06-2ubuntu12)
|
|
lunar |
Not vulnerable
(2.06-2ubuntu16)
|
|
upstream |
Needs triage
|
Severity score breakdown
Parameter | Value |
---|---|
Base score | 5.7 |
Attack vector | Local |
Attack complexity | High |
Privileges required | High |
User interaction | None |
Scope | Unchanged |
Confidentiality | None |
Integrity impact | High |
Availability impact | High |
Vector | CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:H |
References
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14310
- https://www.eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/
- https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/GRUB2SecureBootBypass
- https://www.openwall.com/lists/oss-security/2020/07/29/3
- https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00034.html
- https://ubuntu.com/security/notices/USN-4432-1
- NVD
- Launchpad
- Debian