Cloudanix VulnDB

CVE-2023-40547

High · 8.3

CVSS

8.3

EPSS

5.4%

Published

Jan 25, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in boot software can let an attacker who controls the network during startup take over the entire machine before the operating system even loads.

Chainable
Exploitation
Adjacent Network
Attacker needs
Other
Complexity
High
Impact
Full Compromise
Component
Firmware
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

The flaw causes Shim to trust attacker-supplied values while parsing an HTTP response during network boot, resulting in an out-of-bounds write primitive that grants complete control of the early-boot execution environment.

Why it matters to the business

Successful exploitation during network boot can lead to full system compromise of any machine relying on the affected boot infrastructure, creating high-risk exposure for large-scale deployments that use PXE or HTTP boot servers.

How an attack unfolds

An attacker must first obtain a man-in-the-middle position or compromise the boot server, then craft a malicious HTTP response containing specially chosen values that trigger the out-of-bounds write when Shim parses the response, resulting in arbitrary code execution before the operating system loads.

How to fix it

Upgrade rhboot/shim to commit 5914984a1ffeab841f482c791426d7ca9935a5e6 or later; rebuild and redeploy any custom Shim binaries; restrict network boot traffic to trusted servers only.

How to confirm the fix worked

Confirm the fixed commit hash is present in the Shim source or binary; test network boot against a patched build to verify the vulnerable parsing path is no longer reachable.

Typical attack path

  1. Position as MITM or compromise the HTTP/PXE boot server
  2. Intercept or serve a malicious HTTP response during early boot
  3. Trigger out-of-bounds write via crafted response values
  4. Execute attacker-controlled code in the pre-OS environment

How to detect it

Review boot-server access and HTTP response logs for unexpected or malformed responses around boot events; examine any systems that fail to boot or exhibit unusual early-boot behavior after network exposure.

What your security team should do

  • Apply the referenced commit to all Shim instances used for network boot
  • Harden or replace any boot servers that serve HTTP responses to Shim
  • Disable network boot where not strictly required
  • Monitor boot-server logs for anomalous HTTP responses

The record

A remote code execution vulnerability was found in Shim. The Shim boot support trusts attacker-controlled values when parsing an HTTP response. This flaw allows an attacker to craft a specific malicious HTTP request, leading to a completely controlled out-of-bounds write primitive and complete system compromise. This flaw is only exploitable during the early boot phase, an attacker needs to perform a Man-in-the-Middle or compromise the boot server to be able to exploit this vulnerability successfully.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 shim-aa64 0 15.8-4.el8_9.alma.1
AlmaLinux:8 shim-ia32 0 15.8-4.el8_9.alma.1
AlmaLinux:8 shim-x64 0 15.8-4.el8_9.alma.1
AlmaLinux:9 shim-aa64 0 15.8-4.el9_3.alma.1
AlmaLinux:9 shim-x64 0 15.8-4.el9_3.alma.1
Debian:10 shim 0 15.8-1~deb10u1
Debian:11 shim 0 15.8-1~deb11u1
Debian:12 shim 0 15.8-1~deb12u1
Debian:13 shim 0 15.8-1
Red Hat:enterprise_linux:7::client mokutil 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::client mokutil-debuginfo 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::client shim 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::client shim-ia32 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::client shim-signed 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::client shim-unsigned-ia32 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::client shim-unsigned-x64 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::client shim-x64 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::server mokutil 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::server mokutil-debuginfo 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::server shim 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::server shim-ia32 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::server shim-signed 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::server shim-unsigned-ia32 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::server shim-unsigned-x64 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::server shim-x64 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::workstation mokutil 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::workstation mokutil-debuginfo 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::workstation shim 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::workstation shim-ia32 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::workstation shim-signed 0 0:15.8-1.el7
Red Hat:enterprise_linux:7::workstation shim-unsigned-ia32 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::workstation shim-unsigned-x64 0 0:15.8-3.el7
Red Hat:enterprise_linux:7::workstation shim-x64 0 0:15.8-1.el7
Red Hat:enterprise_linux:8::baseos shim 0 0:15.8-4.el8_9
Red Hat:enterprise_linux:8::baseos shim-aa64 0 0:15.8-4.el8_9
Red Hat:enterprise_linux:8::baseos shim-ia32 0 0:15.8-4.el8_9
Red Hat:enterprise_linux:8::baseos shim-x64 0 0:15.8-4.el8_9
Red Hat:enterprise_linux:9::baseos shim 0 0:15.8-4.el9_3
Red Hat:enterprise_linux:9::baseos shim-aa64 0 0:15.8-4.el9_3
Red Hat:enterprise_linux:9::baseos shim-x64 0 0:15.8-4.el9_3
Red Hat:rhel_aus:8.2::baseos shim 0 0:15.8-2.el8_2
Red Hat:rhel_aus:8.2::baseos shim-ia32 0 0:15.8-2.el8_2
Red Hat:rhel_aus:8.2::baseos shim-x64 0 0:15.8-2.el8_2
Red Hat:rhel_aus:8.4::baseos shim 0 0:15.8-2.el8_4
Red Hat:rhel_aus:8.4::baseos shim-ia32 0 0:15.8-2.el8_4
Red Hat:rhel_aus:8.4::baseos shim-x64 0 0:15.8-2.el8_4
Red Hat:rhel_e4s:8.2::baseos shim 0 0:15.8-2.el8_2
Red Hat:rhel_e4s:8.2::baseos shim-ia32 0 0:15.8-2.el8_2
Red Hat:rhel_e4s:8.2::baseos shim-x64 0 0:15.8-2.el8_2
Red Hat:rhel_e4s:8.4::baseos shim 0 0:15.8-2.el8_4
Red Hat:rhel_e4s:8.4::baseos shim-ia32 0 0:15.8-2.el8_4
Red Hat:rhel_e4s:8.4::baseos shim-x64 0 0:15.8-2.el8_4
Red Hat:rhel_eus:8.6::baseos shim 0 0:15.8-2.el8_6
Red Hat:rhel_eus:8.6::baseos shim-aa64 0 0:15.8-2.el8_6
Red Hat:rhel_eus:8.6::baseos shim-ia32 0 0:15.8-2.el8_6
Red Hat:rhel_eus:8.6::baseos shim-x64 0 0:15.8-2.el8_6
Red Hat:rhel_eus:8.8::baseos shim 0 0:15.8-2.el8
Red Hat:rhel_eus:8.8::baseos shim-aa64 0 0:15.8-2.el8
Red Hat:rhel_eus:8.8::baseos shim-ia32 0 0:15.8-2.el8
Red Hat:rhel_eus:8.8::baseos shim-x64 0 0:15.8-2.el8
Red Hat:rhel_eus:8.8::crb shim-unsigned-x64 0 0:15.8-2.el8
Red Hat:rhel_eus:9.0::appstream shim-unsigned-aarch64 0 0:15.8-2.el9
Red Hat:rhel_eus:9.0::baseos shim 0 0:15.8-3.el9
Red Hat:rhel_eus:9.0::baseos shim-aa64 0 0:15.8-3.el9
Red Hat:rhel_eus:9.0::baseos shim-x64 0 0:15.8-3.el9
Red Hat:rhel_eus:9.0::crb shim-unsigned-x64 0 0:15.8-2.el9
Red Hat:rhel_eus:9.2::baseos shim 0 0:15.8-3.el9_2
Red Hat:rhel_eus:9.2::baseos shim-aa64 0 0:15.8-3.el9_2
Red Hat:rhel_eus:9.2::baseos shim-x64 0 0:15.8-3.el9_2
Red Hat:rhel_tus:8.2::baseos shim 0 0:15.8-2.el8_2
Red Hat:rhel_tus:8.2::baseos shim-ia32 0 0:15.8-2.el8_2
Red Hat:rhel_tus:8.2::baseos shim-x64 0 0:15.8-2.el8_2
Red Hat:rhel_tus:8.4::baseos shim 0 0:15.8-2.el8_4
Red Hat:rhel_tus:8.4::baseos shim-ia32 0 0:15.8-2.el8_4
Red Hat:rhel_tus:8.4::baseos shim-x64 0 0:15.8-2.el8_4
SUSE:Enterprise Storage 7.1 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS shim 0 15.8-150100.3.38.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Micro 5.1 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Micro 5.2 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Micro 5.3 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Micro 5.4 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Micro 5.5 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Module for Basesystem 15 SP5 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Server 12 SP5 shim 0 15.8-25.30.1
SUSE:Linux Enterprise Server 15 SP2-LTSS shim 0 15.8-150100.3.38.1
SUSE:Linux Enterprise Server 15 SP3-LTSS shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Server 15 SP4-LTSS shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 shim 0 15.8-25.30.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 shim 0 15.8-150100.3.38.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 shim 0 15.8-150300.4.20.2
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 shim 0 15.8-150300.4.20.2
SUSE:Manager Proxy 4.3 shim 0 15.8-150300.4.20.2
SUSE:Manager Server 4.3 shim 0 15.8-150300.4.20.2
Ubuntu:14.04:LTS shim 0 No fix
Ubuntu:14.04:LTS shim-signed 0 No fix
Ubuntu:16.04:LTS shim 0 No fix
Ubuntu:16.04:LTS shim-signed 0 No fix
Ubuntu:18.04:LTS shim 0 No fix
Ubuntu:18.04:LTS shim-signed 0 No fix
Ubuntu:20.04:LTS shim 0 No fix
Ubuntu:20.04:LTS shim 0 15.8-0ubuntu1
Ubuntu:20.04:LTS shim-signed 0 No fix
Ubuntu:20.04:LTS shim-signed 0 1.40.10
Ubuntu:22.04:LTS shim 0 No fix
Ubuntu:22.04:LTS shim 0 15.8-0ubuntu1
Ubuntu:22.04:LTS shim-signed 0 No fix
Ubuntu:22.04:LTS shim-signed 0 1.51.4
Ubuntu:24.04:LTS shim 0 15.8-0ubuntu1
Ubuntu:24.04:LTS shim-signed 0 1.58
Ubuntu:24.10 shim 0 15.8-0ubuntu1
Ubuntu:24.10 shim-signed 0 1.58
Ubuntu:Pro:14.04:LTS shim 0 No fix
Ubuntu:Pro:14.04:LTS shim-signed 0 No fix
Ubuntu:Pro:16.04:LTS shim 0 No fix
Ubuntu:Pro:16.04:LTS shim-signed 0 No fix
Ubuntu:Pro:18.04:LTS shim 0 No fix
Ubuntu:Pro:18.04:LTS shim-signed 0 No fix
Ubuntu:Pro:20.04:LTS shim 0 No fix
Ubuntu:Pro:20.04:LTS shim-signed 0 No fix
openSUSE:Leap 15.5 shim 0 15.8-150300.4.20.2
openSUSE:Leap Micro 5.3 shim 0 15.8-150300.4.20.2
openSUSE:Leap Micro 5.4 shim 0 15.8-150300.4.20.2

Related vulnerabilities