CVE-2023-4692
High · 7.8CVSS
7.8
EPSS
0.5%
Published
Oct 25, 2023
CISA due date
—
Cloudanix analysis
A bug in code that reads certain disk formats could let an attacker take over a computer right when it starts up and get around built-in security protections.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write in the NTFS filesystem driver corrupts heap metadata in GRUB2 and potentially UEFI firmware, enabling arbitrary code execution and Secure Boot bypass.
Why it matters to the business
Attackers could gain persistent control over systems during boot, bypass hardware-enforced security, and compromise entire fleets of virtual or physical machines that rely on the affected component.
How an attack unfolds
An attacker creates a malicious NTFS disk image containing crafted structures that trigger the out-of-bounds write when GRUB2 parses it, leading to heap corruption that can be leveraged for code execution and Secure Boot bypass on affected QEMU environments or downstream systems.
How to fix it
Update qemu-project/qemu to commit 4743c23509a51bd4ee85cc272287a41917d1be35 or later; rebuild and redeploy any affected virtual machine images or firmware that embed the vulnerable GRUB2 driver.
How to confirm the fix worked
Verify the GRUB2 NTFS driver binary or source contains commit 4743c23509a51bd4ee85cc272287a41917d1be35; test boot with a known-malicious NTFS image in a controlled environment to confirm the write no longer occurs.
Typical attack path
- Craft a specially formatted NTFS filesystem image that triggers the out-of-bounds write
- Present the image to the vulnerable GRUB2 NTFS driver (via QEMU disk emulation or direct boot)
- Trigger heap metadata corruption during filesystem parsing
- Leverage corruption for arbitrary code execution and Secure Boot bypass
How to detect it
Review boot logs, QEMU process arguments, and disk image provenance for unexpected NTFS volumes; look for crashes or anomalous memory behavior during GRUB2 filesystem initialization in affected environments.
What your security team should do
- Immediately upgrade all QEMU installations and any embedded GRUB2 instances to the fixed commit
- Scan build pipelines and golden images for the vulnerable GRUB2 NTFS driver
- Prioritize systems that boot from untrusted or externally supplied disk images
The record
An out-of-bounds write flaw was found in grub2's NTFS filesystem driver. This issue may allow an attacker to present a specially crafted NTFS filesystem image, leading to grub's heap metadata corruption. In some circumstances, the attack may also corrupt the UEFI firmware heap metadata. As a result, arbitrary code execution and secure boot protection bypass may be achieved.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | grub2-common | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-aa64 | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-aa64-cdboot | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-aa64-modules | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-ia32 | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-ia32-cdboot | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-ia32-modules | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-x64 | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-x64-cdboot | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-efi-x64-modules | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-pc | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-pc-modules | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-ppc64le | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-ppc64le-modules | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-tools | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-tools-efi | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-tools-extra | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:8 | grub2-tools-minimal | 0 | 1:2.02-156.el8.alma.1 |
| AlmaLinux:9 | grub2-common | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-aa64 | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-aa64-cdboot | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-aa64-modules | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-x64 | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-x64-cdboot | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-efi-x64-modules | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-pc | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-pc-modules | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-ppc64le | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-ppc64le-modules | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-tools | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-tools-efi | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-tools-extra | 0 | 1:2.06-77.el9.alma.1 |
| AlmaLinux:9 | grub2-tools-minimal | 0 | 1:2.06-77.el9.alma.1 |
| Debian:10 | grub2 | 0 | 2.06-3~deb10u4 |
| Debian:11 | grub2 | 0 | 2.06-3~deb11u6 |
| Debian:12 | grub2 | 0 | 2.06-13+deb12u1 |
| Debian:13 | grub2 | 0 | 2.12~rc1-11 |
| Mageia:9 | grub2 | 0 | 2.06-28.2.mga9 |
| Red Hat:enterprise_linux:8::baseos | grub2 | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-common | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-debuginfo | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-debugsource | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-aa64 | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-aa64-cdboot | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-aa64-modules | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-ia32 | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-ia32-cdboot | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-ia32-modules | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-x64 | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-x64-cdboot | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-efi-x64-modules | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-pc | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-pc-modules | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-ppc64le | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-ppc64le-modules | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-debuginfo | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-efi | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-efi-debuginfo | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-extra | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-extra-debuginfo | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-minimal | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:8::baseos | grub2-tools-minimal-debuginfo | 0 | 1:2.02-156.el8 |
| Red Hat:enterprise_linux:9::baseos | grub2 | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-common | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-debuginfo | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-debugsource | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-aa64 | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-aa64-cdboot | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-aa64-modules | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-x64 | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-x64-cdboot | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-efi-x64-modules | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-emu-debuginfo | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-pc | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-pc-modules | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-ppc64le | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-ppc64le-modules | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-debuginfo | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-efi | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-efi-debuginfo | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-extra | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-extra-debuginfo | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-minimal | 0 | 1:2.06-77.el9 |
| Red Hat:enterprise_linux:9::baseos | grub2-tools-minimal-debuginfo | 0 | 1:2.06-77.el9 |
| Rocky Linux:8 | grub2 | 0 | 1:2.02-156.el8.rocky.0.1 |
| SUSE:Enterprise Storage 7.1 | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Linux Enterprise Micro 5.2 | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Linux Enterprise Micro 5.3 | grub2 | 0 | 2.06-150400.11.38.1 |
| SUSE:Linux Enterprise Micro 5.4 | grub2 | 0 | 2.06-150400.11.38.1 |
| SUSE:Linux Enterprise Micro 5.5 | grub2 | 0 | 2.06-150500.29.8.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | grub2 | 0 | 2.06-150400.11.38.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | grub2 | 0 | 2.06-150500.29.8.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP4 | grub2 | 0 | 2.06-150400.11.38.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | grub2 | 0 | 2.06-150500.29.8.1 |
| SUSE:Linux Enterprise Server 12 SP5 | grub2 | 0 | 2.02-169.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | grub2 | 0 | 2.02-169.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Manager Proxy 4.2 | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Manager Proxy Module 4.2 | grub2 | 0 | 2.04-150300.22.43.1 |
| SUSE:Manager Proxy Module 4.3 | grub2 | 0 | 2.06-150400.11.38.1 |
| SUSE:Manager Server 4.2 | grub2 | 0 | 2.04-150300.22.43.1 |
| Ubuntu:16.04:LTS | grub2-signed | 0 | No fix |
| Ubuntu:16.04:LTS | grub2-unsigned | 0 | No fix |
| Ubuntu:18.04:LTS | grub2-signed | 0 | No fix |
| Ubuntu:18.04:LTS | grub2-unsigned | 0 | No fix |
| Ubuntu:20.04:LTS | grub2-signed | 0 | 1.187.6~20.04.1 |
| Ubuntu:20.04:LTS | grub2-unsigned | 0 | 2.06-2ubuntu14.4 |
| Ubuntu:22.04:LTS | grub2-signed | 0 | 1.187.6 |
| Ubuntu:22.04:LTS | grub2-unsigned | 0 | 2.06-2ubuntu14.4 |
| Ubuntu:24.04:LTS | grub2-signed | 0 | 1.197 |
| Ubuntu:24.04:LTS | grub2-unsigned | 0 | 2.12~rc1-10ubuntu4 |
| Ubuntu:Pro:14.04:LTS | grub2-signed | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | grub2-signed | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | grub2-unsigned | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | grub2-signed | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | grub2-unsigned | 0 | No fix |
| openSUSE:Tumbleweed | grub2 | 0 | 2.12~rc1-5.1 |
Related vulnerabilities
- CVE-2023-4693 An out-of-bounds read flaw was found on grub2's NTFS filesystem driver. Also affects grub2-common
- CVE-2022-28736 There's a use-after-free vulnerability in grub_cmd_chainloader() function; The… Also affects grub2-common
- CVE-2022-28735 The GRUB2's shim_lock verifier allows non-kernel files to be loaded on shim-powered… Also affects grub2-common
- CVE-2022-28733 Integer underflow in grub_net_recv_ip4_packets; A malicious crafted IP packet can lead to… Also affects grub2-common
- CVE-2022-28734 Out-of-bounds write when handling split HTTP headers; When handling split HTTP headers… Also affects grub2-common
- CVE-2022-3775 When rendering certain unicode sequences, grub2's font code doesn't proper validate if… Also affects grub2-common
- CVE-2022-2601 A buffer overflow was found in grub_font_construct_glyph(). Also affects grub2-common
- CVE-2021-3695 A crafted 16-bit grayscale PNG image may lead to a out-of-bounds write in the heap area. Also affects grub2-common