CVE-2023-54291

Description

A NULL pointer dereference vulnerability was found in the Linux kernel's VDUSE (vDPA Device in Userspace) subsystem. The vduse_vdpa_set_vq_affinity() callback can be invoked with a NULL cpu_mask value when deleting a vduse device. The code attempts to copy from this NULL pointer, causing a kernel crash during device removal.

Statement

This flaw affects systems using VDUSE for userspace-backed vDPA devices, typically in virtualization environments. The crash occurs during device deletion operations, which generally require administrative privileges. While the bug causes a denial of service, exploitation is limited to users with permissions to manage vDPA devices.

Mitigation

To mitigate this issue, prevent the vduse module from being loaded. See https://access.redhat.com/solutions/41278 for instructions.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score5.5N/AN/A
Attack VectorLocalN/AN/A
Attack ComplexityLowN/AN/A
Privileges RequiredLowN/AN/A
User InteractionNoneN/AN/A
ScopeUnchangedN/AN/A
ConfidentialityNoneN/AN/A
Integrity ImpactNoneN/AN/A
Availability ImpactHighN/AN/A

Vector

Red Hat: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Understanding the Weakness (CWE)

Availability

Technical Impact: DoS: Crash, Exit, or Restart

NULL pointer dereferences usually result in the failure of the process unless exception handling (on some platforms) is available and implemented. Even when exception handling is being used, it can still be very difficult to return the software to a safe state of operation.

Integrity,Confidentiality

Technical Impact: Execute Unauthorized Code or Commands; Read Memory; Modify Memory

In rare circumstances, when NULL is equivalent to the 0x0 memory address and privileged code can access it, then writing or reading memory is possible, which may lead to code execution.

Frequently Asked Questions

Want to get errata notifications? Sign up here.