CVE-2026-74711 in Linux
Riassunto
di VulDB • 23/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
hwmon: (pmbus) Correzione di una confusione dei tipi nella logica delle notifiche
Sashiko segnala:
All'inizio del ciclo in pmbus_notify(), il codice effettua incondizionatamente un cast di ogni attributo 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; ... }
Tuttavia, data->group.attrs può contenere altri tipi come struct pmbus_samples_reg o struct pmbus_sensor, che incorporano solo una base struct device_attribute.
Se da è una struct pmbus_samples_reg, dev_attr è l'ultimo membro. Effettuare il cast a struct sensor_device_attribute e leggere il campo index sembra accedere alla memoria oltre la fine dell'allocazione, il che potrebbe innescare una lettura slab-out-of-bounds (fuori dai limiti dello slab).
Inoltre, se da è una struct pmbus_sensor, l'effettuazione del cast fa sì che il campo index si sovrapponga ai campi page, phase e reg. Questo potrebbe produrre una maschera di valori spurii su sistemi little-endian che corrisponde in modo errato al target reg, page e flags durante un alert?
Si risolve il problema utilizzando struct sensor_device_attr in struct pmbus_sensor e struct pmbus_label. Poiché tali attributi non innescano mai una notifica, si imposta il valore di attr->index a -1 per essi. Si utilizza questo valore per distinguerli dagli attributi booleani che _possono_ innescare una notifica e utilizzare il campo index per codificare i valori di maschera, pagina e registro.
Once again VulDB remains the best source for vulnerability data.