Cloudanix VulnDB

CVE-2023-4001

Medium · 6.8

CVSS

6.8

EPSS

0.5%

Published

Jan 15, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

Someone who can plug a USB stick into a Linux computer can sometimes get around the password that is supposed to stop people from changing how the computer starts up.

Exploitation
Physical Access
Attacker needs
Physical Access
Complexity
Moderate
Impact
Full Compromise
Component
Application
Class
Authentication Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Bypasses GRUB password protection on UEFI systems by causing GRUB to load its configuration from an attacker-controlled filesystem that shares the same UUID as the legitimate /boot filesystem.

Why it matters to the business

Attackers with brief physical access can alter boot settings, load unauthorized kernels, or disable security controls on affected Linux systems, increasing risk of full system compromise and data exposure; the flaw exists only in certain downstream distributions and has remained unpatched in listed products for over two years.

How an attack unfolds

An attacker identifies the UUID of the target /boot partition, prepares a USB drive containing a matching filesystem and a GRUB configuration without password protection, inserts the drive into a UEFI system, and reboots; because UEFI enumerates removable media first, GRUB discovers the duplicate UUID and loads the attacker-supplied configuration, bypassing the password check.

How to fix it

Apply any available downstream patches from Red Hat or Fedora that address the UUID-handling logic; where patches are unavailable, enforce physical security controls that prevent attachment of external media and consider disabling removable-device boot in UEFI firmware settings.

How to confirm the fix worked

Verify GRUB package version against distribution advisories; attempt controlled boot with a duplicate-UUID USB while monitoring whether the password prompt is presented; inspect /boot/grub/grub.cfg or equivalent for unexpected changes after test boots.

Typical attack path

  1. Reconnoiter target to obtain /boot filesystem UUID
  2. Format external USB media with identical UUID and a GRUB config lacking password enforcement
  3. Attach USB drive to powered-off or running UEFI target
  4. Trigger reboot or power cycle
  5. GRUB loads attacker config and grants unauthenticated access to the boot menu

How to detect it

Examine system boot logs, GRUB environment files, and any recorded console output for references to unexpected removable media or duplicate-UUID mounts; correlate physical-access logs or USB insertion events with subsequent boot configuration changes.

What your security team should do

  • Treat physical access to systems as a high-priority control and restrict USB ports where feasible
  • Monitor vendor security feeds for grub2 updates in Red Hat Enterprise Linux and Fedora and apply immediately upon release
  • Document compensating controls such as UEFI boot-order restrictions and BIOS passwords for systems that cannot be patched

The record

An authentication bypass flaw was found in GRUB due to the way that GRUB uses the UUID of a device to search for the configuration file that contains the password hash for the GRUB password protection feature. An attacker capable of attaching an external drive such as a USB stick containing a file system with a duplicate UUID (the same as in the "/boot/" file system) can bypass the GRUB password protection feature on UEFI systems, which enumerate removable drives before non-removable ones. This issue was introduced in a downstream patch in Red Hat's version of grub2 and does not affect the upstream package.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:9 grub2-common 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-aa64 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-aa64-cdboot 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-aa64-modules 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-x64 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-x64-cdboot 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-efi-x64-modules 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-pc 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-pc-modules 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-ppc64le 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-ppc64le-modules 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-tools 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-tools-efi 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-tools-extra 0 1:2.06-70.el9_3.2.alma.1
AlmaLinux:9 grub2-tools-minimal 0 1:2.06-70.el9_3.2.alma.1
Mageia:9 grub2 0 2.06-28.2.mga9
Red Hat:enterprise_linux:9::baseos grub2 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-common 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-debugsource 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-aa64 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-aa64-cdboot 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-aa64-modules 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-x64 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-x64-cdboot 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-efi-x64-modules 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-emu-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-pc 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-pc-modules 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-ppc64le 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-ppc64le-modules 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-efi 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-efi-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-extra 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-extra-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-minimal 0 1:2.06-70.el9_3.2
Red Hat:enterprise_linux:9::baseos grub2-tools-minimal-debuginfo 0 1:2.06-70.el9_3.2
Red Hat:rhel_eus:9.0::baseos grub2 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-common 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-debugsource 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-aa64 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-aa64-cdboot 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-aa64-modules 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-x64 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-x64-cdboot 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-efi-x64-modules 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-emu-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-pc 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-pc-modules 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-ppc64le 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-ppc64le-modules 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-efi 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-efi-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-extra 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-extra-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-minimal 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.0::baseos grub2-tools-minimal-debuginfo 0 1:2.06-27.el9_0.16
Red Hat:rhel_eus:9.2::baseos grub2 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-common 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-debuginfo 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-debugsource 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-aa64 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-aa64-cdboot 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-aa64-modules 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-x64 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-x64-cdboot 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-efi-x64-modules 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-emu-debuginfo 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-pc 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-pc-modules 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-ppc64le 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-ppc64le-modules 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-debuginfo 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-efi 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-efi-debuginfo 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-extra 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-extra-debuginfo 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-minimal 0 1:2.06-61.el9_2.2
Red Hat:rhel_eus:9.2::baseos grub2-tools-minimal-debuginfo 0 1:2.06-61.el9_2.2
Ubuntu:Pro:14.04:LTS grub2-signed 0 No fix

Related vulnerabilities