Skip to main content

Linux Kernel EUVDEUVD-2026-45657

| CVE-2026-64084 HIGH
Out-of-bounds Write (CWE-787)
2026-07-19 Linux GHSA-m232-p3mf-6xc5
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

Local authenticated user reaching the driver's GPIO path (AV:L, PR:L, AC:L); OOB read/write of kernel stack yields high C/I/A within an unchanged scope.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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
Jul 20, 2026 - 17:19 vuln.today
CVSS changed
Jul 20, 2026 - 15:22 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 cve.org
HIGH 7.8

DescriptionCVE.org

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

hwmon: (pmbus/adm1266) cap PDIO scan in get_multiple at ADM1266_PDIO_NR

adm1266_gpio_get_multiple() iterates the PDIO portion of the caller-supplied mask using

for_each_set_bit_from(gpio_nr, mask, ADM1266_GPIO_NR + ADM1266_PDIO_STATUS) { ... }

where ADM1266_PDIO_STATUS is the PMBus command code (0xE9, i.e. 233), not the number of PDIO pins. The intended upper bound is ADM1266_GPIO_NR + ADM1266_PDIO_NR = 25.

gpiolib hands in a mask sized for gc.ngpio (= 25 bits on this chip), so the iteration walks find_next_bit() up to 242, reading up to 217 extra bits (a handful of unsigned-long words: four on 64-bit, seven on 32-bit) of whatever lives past the end of the mask in the caller's stack. Any incidental set bit in that range then drives a set_bit(gpio_nr, bits) call that writes past the end of the caller-supplied bits array too -- both out-of-bounds.

Substitute ADM1266_PDIO_NR for the constant so the scan stops at the last real PDIO bit.

AnalysisAI

Out-of-bounds read and write in the Linux kernel's hwmon PMBus ADM1266 driver (adm1266_gpio_get_multiple) lets a local low-privileged user with access to the driver's GPIO interface corrupt adjacent kernel/caller stack memory, potentially leading to privilege escalation or a crash. The flaw stems from an incorrect loop bound (the PMBus command code 0xE9/233 was used instead of the 25-pin ADM1266_PDIO_NR limit), so the scan walks up to 242 bits and reads/writes past the caller-supplied mask and bits arrays. No public exploit identified at time of analysis; EPSS is 0.18% (8th percentile) and the CVE is not on CISA KEV.

Technical ContextAI

The affected component is the ADM1266 cascadable super-sequencer/power-supply monitor driver under drivers/hwmon/pmbus, which exposes the chip's GPIO and PDIO (programmable digital I/O) pins to the kernel gpiolib subsystem. gpiolib invokes the driver's get_multiple callback with a bitmap sized to gc.ngpio (25 bits on this chip). The bug is a classic off-by-large-constant loop bound: for_each_set_bit_from() iterated up to ADM1266_GPIO_NR + ADM1266_PDIO_STATUS, where ADM1266_PDIO_STATUS (0xE9 = 233) is the PMBus command opcode, not a pin count, instead of ADM1266_GPIO_NR + ADM1266_PDIO_NR (25). find_next_bit() therefore scans up to index 242, reading roughly four extra unsigned-long words on 64-bit (seven on 32-bit) beyond the caller's stack mask, and any incidental set bit triggers a set_bit() write past the caller's bits array. This maps to CWE-125 (out-of-bounds read) and CWE-787 (out-of-bounds write) - the 'Buffer Overflow' tag in the intel reflects both; the CVE record lists CWE as N/A.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - 5.10.258, 5.15.209, 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11 or 7.1 (or later on each branch), which replace the ADM1266_PDIO_STATUS bound with ADM1266_PDIO_NR so the PDIO scan stops at the last real pin. The fix commits are published on git.kernel.org/stable (e.g. https://git.kernel.org/stable/c/d0593e15fdeb56048a72c5c6e720f702759d0ccd and the parallel per-branch backports 17cee2f5..., 299efd14..., 4d1da9a6..., b96c7f0b..., fa7ca363..., d7834d92..., 2aef8f08...). If immediate patching is not possible, a targeted compensating control is to unload or blacklist the adm1266 module (modprobe -r adm1266 / blacklist adm1266) on systems that do not require ADM1266 power-sequencer telemetry - the trade-off is loss of hardware voltage/sequencer monitoring for that chip. Additionally restrict access to the corresponding /dev/gpiochip* and hwmon interfaces to trusted users, since the trigger requires reaching the driver's GPIO get_multiple path.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-45657 vulnerability details – vuln.today

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