Skip to main content

Linux Kernel CVE-2026-64085

| EUVDEUVD-2026-45658 HIGH
Out-of-bounds Write (CWE-787)
2026-07-19 Linux GHSA-8q8m-4rrf-vcv4
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

AC:H reflects the requirement for a malicious or firmware-compromised ADM1266 device on the I2C bus; all other metrics match the provided vector.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.7 MEDIUM
AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:H

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Sep 03, 2026 - 12:38 vuln.today
CVSS changed
Sep 03, 2026 - 12:37 NVD
7.8 (HIGH)
Patch available
Jul 19, 2026 - 17:03 EUVD
CVE Published
Jul 19, 2026 - 15:39 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 19, 2026 - 15:39 nvd
HIGH 7.8

DescriptionNVD

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

hwmon: (pmbus/adm1266) bounce blackbox records through a protocol-sized buffer

adm1266_pmbus_block_xfer() copies the device-supplied block payload into the caller-provided buffer using the device-supplied length:

memcpy(data_r, &msgs[1].buf[1], msgs[1].buf[0]);

The helper does not know how large data_r is and trusts the device to return at most one record's worth of bytes. adm1266_nvmem_read_blackbox() violates that contract: it advances read_buff inside data->dev_mem in ADM1266_BLACKBOX_SIZE (64-byte) strides while the helper is willing to write up to ADM1266_PMBUS_BLOCK_MAX (255) bytes. A device that returns more than 64 bytes on the trailing record (read_buff offset 1984 in the 2048-byte dev_mem allocation) overflows dev_mem by up to 191 bytes before the post-call

if (ret != ADM1266_BLACKBOX_SIZE) return -EIO;

can reject the response.

Contain the fix in the caller without changing the helper signature: read each record into a 255-byte local bounce buffer that matches the helper's maximum output, validate the returned length, and only then copy exactly ADM1266_BLACKBOX_SIZE bytes into the dev_mem slot.

AnalysisAI

Out-of-bounds heap write in the Linux kernel's ADM1266 PMBus power-sequencer hwmon driver allows a locally-privileged attacker - aided by a malicious or non-compliant ADM1266 device - to overflow kernel heap memory by up to 191 bytes, potentially achieving privilege escalation or kernel code execution. The root cause is a size-contract violation between adm1266_pmbus_block_xfer() (which trusts device-supplied lengths up to 255 bytes) and adm1266_nvmem_read_blackbox() (which allocates only 64-byte strides). No public exploit code has been identified at time of analysis; EPSS is 0.18%, consistent with low in-the-wild interest.

Technical ContextAI

The ADM1266 is an Analog Devices PMBus power-sequence controller IC found in server and datacenter power subsystems. The Linux kernel exposes its blackbox (fault log) records through the nvmem subsystem via adm1266_nvmem_read_blackbox(), which loops over 32 records and advances a write pointer (read_buff) through a 2048-byte dev_mem buffer in 64-byte (ADM1266_BLACKBOX_SIZE) strides. The PMBus block-transfer helper adm1266_pmbus_block_xfer() blindly copies up to ADM1266_PMBUS_BLOCK_MAX (255) bytes from the device-supplied I2C block payload directly into the caller's buffer. On the last record (at offset 1984 of 2048), a device returning more than 64 bytes causes a heap overflow of up to 191 bytes before the post-call length check can reject the response. CWE-787 (Out-of-bounds Write) is the precise root-cause class. The fix adds a 255-byte local bounce buffer in the caller, validates the length first, and then copies exactly 64 bytes into dev_mem.

RemediationAI

Apply the vendor-released stable-kernel patches: upgrade to Linux 5.10.258, 5.15.209, 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11, or 7.1 depending on the branch in use. Upstream fix commits are available at git.kernel.org/stable/c/ for each branch (see references). Ubuntu users should apply USN-8575-1. Where an immediate kernel update is not possible, the practical compensating control is to blacklist or unload the pmbus/adm1266 kernel module (modprobe -r adm1266; echo 'blacklist adm1266' >> /etc/modprobe.d/blacklist.conf) - this disables ADM1266 power-sequencer monitoring but eliminates the attack surface entirely. Additionally, restrict physical and I2C bus access to ADM1266-equipped systems to trusted personnel to prevent hardware substitution attacks. The module blacklist has no side effects on systems without ADM1266 hardware.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.208 Container suse/sl-micro/6.1/base-os-container:2.2.1-5.184 Affected
Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.218 Container suse/sl-micro/6.1/kvm-os-container:2.2.1-5.186 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.237 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.180 Affected
SUSE Linux Enterprise Real Time 15 SP7 SUSE Real Time Module 15 SP7 Fixed
SUSE Linux Micro 6.0 Fixed

Share

CVE-2026-64085 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy