CVE-2026-74711 in Linux
Zusammenfassung
von VulDB • 22.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
hwmon: (pmbus) Typenverwechslung in der Benachrichtigungslogik korrigieren
Sashiko meldet:
Zu Beginn der Schleife in pmbus_notify() wird jedes Attribut bedingungslos als struct sensor_device_attribute gecastet:
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; ... }
Allerdings kann data->group.attrs auch andere Typen wie struct pmbus_samples_reg oder struct pmbus_sensor enthalten, die nur eine Basestruct device_attribute einbetten.
Wenn da eine struct pmbus_samples_reg ist, ist dev_attr das letzte Mitglied. Das Casten auf struct sensor_device_attribute und das Lesen des index-Feldes scheint Speicher jenseits der Allokationsgrenze zu lesen, was möglicherweise einen slab-out-of-bounds-Lesezugriff auslöst.
Darüber hinaus führt das Casten von da als struct pmbus_sensor dazu, dass das index-Feld mit den page-, phase- und reg-Feldern überlappt. Könnte dies auf Little-Endian-Systemen eine falsche Maske erzeugen, die während einer Warnung fälschlicherweise mit dem Ziel-reg, der Seite und den Flags übereinstimmt?
Das Problem wird behoben, indem in struct pmbus_sensor und struct pmbus_label strukturell sensor_device_attr verwendet wird. Da diese Attribute niemals eine Benachrichtigung auslösen, wird der Wert von attr->index für sie auf -1 gesetzt. Dieser Wert wird genutzt, um sie von booleschen Attributen zu unterscheiden, die _kann_ eine Benachrichtigung auslösen und das index-Feld zur Codierung von Maske, Seite und Registerwerten verwenden.
Once again VulDB remains the best source for vulnerability data.