CVE-2026-97427 in Linuxinfo

Summary

by MITRE • 09/24/2026

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

drm/amd/pm: bound pp_dpm_set_pp_table() memcpy

The powerplay path allocates hardcode_pp_table once with kmemdup(..., soft_pp_table_size). memcpy(..., size) used the sysfs store count (up to PAGE_SIZE) with no upper bound, causing heap overflow. Reject writes where size exceeds soft_pp_table_size.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/24/2026

The vulnerability identified in the Linux kernel's Direct Rendering Manager subsystem for AMD graphics hardware involves a critical buffer overflow within the powerplay management interface. Specifically, the function pp_dpm_set_pp_table is responsible for handling user-space requests to update dynamic performance tables that control GPU clock speeds and voltage levels. The core of this flaw lies in how memory allocation and data copying are coordinated during these write operations. When a user attempts to modify the power play table via sysfs, the kernel first allocates a temporary buffer named hardcode_pp_table using kmemdup based on the size specified by the soft_pp_table_size variable. This allocated size represents the expected or maximum valid capacity for the configuration data being processed.

However, the subsequent memory copy operation utilizes memcpy to transfer data from user space into this newly allocated kernel buffer. The length parameter passed to memcpy is derived directly from the sysfs store count provided by the caller without any validation against the previously determined soft_pp_table_size limit. This lack of bounds checking allows a malicious or buggy local user to supply a size value significantly larger than the allocated heap region, potentially reaching up to PAGE_SIZE which corresponds to the maximum write buffer allowed by the VFS layer for sysfs files. Consequently, this results in an out-of-bounds heap write where data is written past the end of the hardcode_pp_table allocation into adjacent memory regions within the kernel slab allocator.

This type of vulnerability falls under CWE-120 Buffer Copy without Checking Size of Input and CWE-787 Out-of-bounds Write, representing a classic memory corruption issue that can lead to severe security consequences. By overwriting heap metadata or neighboring objects, an attacker may achieve arbitrary code execution with kernel privileges, escalate their access rights from unprivileged user space to root level within the operating system, or cause a denial of service by corrupting critical kernel structures leading to a system panic. The attack vector is classified as local in nature according to MITRE ATT&CK framework techniques related to privilege escalation via memory corruption exploits such as heap spraying or targeted overwrites depending on the specific allocation context and timing.

The operational impact extends beyond immediate exploitation potential, as it undermines the integrity of the GPU power management subsystem which relies heavily on accurate configuration data for stable hardware operation. Even if full code execution is not achieved immediately, repeated attempts to trigger this overflow could destabilize system memory usage patterns leading to unpredictable behavior or resource exhaustion. Mitigation strategies implemented in the patch involve adding a strict validation check within pp_dpm_set_pp_table that compares the incoming size parameter against soft_pp_table_size before proceeding with the memcpy operation. If the provided size exceeds the allocated limit, the function immediately rejects the write request and returns an error code to user space preventing any further processing of the oversized input.

To maintain robust security posture around kernel interfaces exposed via sysfs or other character devices, developers must ensure that all copy operations from untrusted sources are strictly bounded by pre-validated allocation sizes rather than relying on external size hints which may be manipulated by attackers. Regular auditing of memory management functions for proper bounds checking is essential to prevent similar vulnerabilities across the codebase. Additionally, employing static analysis tools and fuzzing techniques targeting kernel APIs can help identify these logical errors early in development cycles before they reach production environments where they pose significant risks to system stability and security integrity.

Responsible

Linux

Reservation

09/24/2026

Disclosure

09/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!