---
id: CVE-2026-74711
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  hwmon: (pmbus) Fix type confusion in notification logic

  Sashiko reports:

  At the start of the loop in pmbus_notify(), the code unconditionally casts
  every attribute to…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  hwmon: (pmbus) Fix type confusion in notification logic

  Sashiko reports:

  At the start of the loop in pmbus_notify(), the code unconditionally casts
  every attribute to…
severity: high
cvss: 8.4
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
published: '2026-08-22'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T13:10:00.187'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-74711'
references:
  - url: 'https://git.kernel.org/stable/c/0b121de89a99c54bcf516999b04e8531c84f08d5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/59bd68ab05a8f9c9a60b6ec44682084184803ff4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/821f6416e69782fa662aff94b5ea52c943042790'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00194
epssPercentile: 0.0839
ingestedAt: '2026-10-14T13:30:58.544Z'
---

## Overview

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

hwmon: (pmbus) Fix type confusion in notification logic

Sashiko reports:

At the start of the loop in pmbus_notify(), the code unconditionally casts
every attribute to a struct sensor_device_attribute:

drivers/hwmon/pmbus/pmbus_core.c:pmbus_notify() {
    for (i = 0; i < data->num_attributes; i++) {
        struct device_attribute *da = to_dev_attr(data->group.attrs[i]);
        struct sensor_device_attribute *attr = to_sensor_dev_attr(da);
        int index = attr->index;
...
}

However, data->group.attrs can contain other types like struct
pmbus_samples_reg or struct pmbus_sensor, which only embed a base
struct device_attribute.

If da is a struct pmbus_samples_reg, dev_attr is the last member. Casting
it to struct sensor_device_attribute and reading the index field appears
to access memory past the end of the allocation, which might trigger a
slab-out-of-bounds read.

Additionally, if da is a struct pmbus_sensor, casting it causes the index
field to overlap with the page, phase, and reg fields. Could this produce
a garbage mask on little-endian systems that spuriously matches the target
reg, page, and flags during an alert?

Fix the problem by using struct sensor_device_attr in struct pmbus_sensor
and struct pmbus_label. Since those attributes never trigger a
notification, set the value of attr->index to -1 for them. Use this value
to distinguish from boolean attributes which _can_ trigger a notification
and use the index field to encode mask, page, and register values.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
