CVE-2023-53647 in Linuxinfo

Summary

by MITRE • 10/07/2025

In the Linux kernel, the following vulnerability has been resolved:

Drivers: hv: vmbus: Don't dereference ACPI root object handle

Since the commit referenced in the Fixes: tag below the VMBus client driver is walking the ACPI namespace up from the VMBus ACPI device to the ACPI namespace root object trying to find Hyper-V MMIO ranges.

However, if it is not able to find them it ends trying to walk resources of the ACPI namespace root object itself. This object has all-ones handle, which causes a NULL pointer dereference in the ACPI code (from dereferencing this pointer with an offset).

This in turn causes an oops on boot with VMBus host implementations that do not provide Hyper-V MMIO ranges in their VMBus ACPI device or its ancestors. The QEMU VMBus implementation is an example of such implementation.

I guess providing these ranges is optional, since all tested Windows versions seem to be able to use VMBus devices without them.

Fix this by explicitly terminating the lookup at the ACPI namespace root object.

Note that Linux guests under KVM/QEMU do not use the Hyper-V PV interface by default - they only do so if the KVM PV interface is missing or disabled.

Example stack trace of such oops: [ 3.710827] ? __die+0x1f/0x60
[ 3.715030] ? page_fault_oops+0x159/0x460
[ 3.716008] ? exc_page_fault+0x73/0x170
[ 3.716959] ? asm_exc_page_fault+0x22/0x30
[ 3.717957] ? acpi_ns_lookup+0x7a/0x4b0
[ 3.718898] ? acpi_ns_internalize_name+0x79/0xc0
[ 3.720018] acpi_ns_get_node_unlocked+0xb5/0xe0
[ 3.721120] ? acpi_ns_check_object_type+0xfe/0x200
[ 3.722285] ? acpi_rs_convert_aml_to_resource+0x37/0x6e0
[ 3.723559] ? down_timeout+0x3a/0x60
[ 3.724455] ? acpi_ns_get_node+0x3a/0x60
[ 3.725412] acpi_ns_get_node+0x3a/0x60
[ 3.726335] acpi_ns_evaluate+0x1c3/0x2c0
[ 3.727295] acpi_ut_evaluate_object+0x64/0x1b0
[ 3.728400] acpi_rs_get_method_data+0x2b/0x70
[ 3.729476] ? vmbus_platform_driver_probe+0x1d0/0x1d0 [hv_vmbus]
[ 3.730940] ? vmbus_platform_driver_probe+0x1d0/0x1d0 [hv_vmbus]
[ 3.732411] acpi_walk_resources+0x78/0xd0
[ 3.733398] vmbus_platform_driver_probe+0x9f/0x1d0 [hv_vmbus]
[ 3.734802] platform_probe+0x3d/0x90
[ 3.735684] really_probe+0x19b/0x400
[ 3.736570] ? __device_attach_driver+0x100/0x100
[ 3.737697] __driver_probe_device+0x78/0x160
[ 3.738746] driver_probe_device+0x1f/0x90
[ 3.739743] __driver_attach+0xc2/0x1b0
[ 3.740671] bus_for_each_dev+0x70/0xc0
[ 3.741601] bus_add_driver+0x10e/0x210
[ 3.742527] driver_register+0x55/0xf0
[ 3.744412] ? 0xffffffffc039a000
[ 3.745207] hv_acpi_init+0x3c/0x1000 [hv_vmbus]

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 03/16/2026

The vulnerability CVE-2023-53647 represents a critical null pointer dereference issue within the Linux kernel's Hyper-V VMBus driver implementation. This flaw manifests when the VMBus client driver attempts to traverse the ACPI namespace hierarchy to locate Hyper-V MMIO ranges, specifically when the driver walks from a VMBus ACPI device up to the ACPI namespace root object. The vulnerability stems from the driver's failure to properly terminate its lookup process at the ACPI namespace root, leading to an attempt to dereference an all-ones handle that represents the root object. This condition results in a kernel oops during boot sequences, particularly affecting systems using QEMU's VMBus implementation where Hyper-V MMIO ranges are not provided. The issue falls under CWE-476, Null Pointer Dereference, and aligns with ATT&CK technique T1059.003 for kernel-level code execution and system compromise.

The technical flaw occurs in the vmbus_platform_driver_probe function within the hv_vmbus kernel module, where the acpi_walk_resources function is invoked to search for MMIO ranges. When the driver cannot locate these ranges in the VMBus ACPI device or its ancestors, it continues walking up the namespace hierarchy to the root object. However, the root object's handle contains all ones, which when dereferenced causes a null pointer exception in the ACPI subsystem. The stack trace demonstrates this progression through acpi_ns_get_node_unlocked, acpi_ns_get_node, and acpi_ns_evaluate functions before ultimately failing in acpi_walk_resources. This represents a classic case of insufficient boundary checking in kernel space code where the driver does not properly validate that it has not reached the namespace root before attempting to access object properties.

The operational impact of this vulnerability is severe, as it can cause complete system boot failures when the kernel attempts to initialize the VMBus driver on systems that do not provide Hyper-V MMIO ranges. This affects virtualized environments using QEMU/KVM where the Hyper-V PV interface is enabled, which is not the default configuration. The vulnerability is particularly concerning because it prevents proper system initialization, potentially rendering affected systems unusable. Attackers could exploit this by ensuring that their virtualized environment lacks the expected MMIO ranges, causing denial of service during boot. The issue affects the broader Linux kernel ecosystem and impacts virtualization platforms that rely on VMBus functionality, particularly in cloud and containerized environments where such boot failures could lead to service disruptions.

The fix implemented addresses this vulnerability by explicitly terminating the lookup process at the ACPI namespace root object, preventing the driver from attempting to dereference the all-ones handle. This solution aligns with secure coding practices that emphasize proper boundary validation and defensive programming. The patch ensures that when the driver reaches the root object, it terminates the search rather than continuing to attempt resource access on what is essentially a null reference. This approach prevents the kernel oops while maintaining the intended functionality of the VMBus driver for systems that do provide the required MMIO ranges. The mitigation strategy should be applied to all Linux systems running kernel versions containing this vulnerability, particularly those in virtualized environments using QEMU/KVM or other VMBus-compatible hypervisors where the Hyper-V PV interface is explicitly enabled.

Responsible

Linux

Reservation

10/07/2025

Disclosure

10/07/2025

Moderation

accepted

CPE

ready

EPSS

0.00182

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!