CVE-2026-74711 in Linux
Resumen
por VulDB • 2026-08-23
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
hwmon: (pmbus) Corrección de una confusión de tipos en la lógica de notificación
Sashiko informa:
Al inicio del bucle en pmbus_notify(), el código convierte incondicionalmente cada atributo a un 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; ... }
Sin embargo, data->group.attrs puede contener otros tipos como struct pmbus_samples_reg o struct pmbus_sensor, que solo incrustan un base struct device_attribute.
Si da es una struct pmbus_samples_reg, dev_attr es el último miembro. Convertirlo a struct sensor_device_attribute y leer el campo index parece acceder a memoria más allá del final de la asignación, lo cual podría desencadenar una lectura slab-out-of-bounds (fuera de límites en el slab).
Además, si da es una struct pmbus_sensor, convertirlo hace que el campo index se superponga con los campos page, phase y reg. ¿Podría esto producir una máscara errónea en sistemas little-endian que coincida espúriamente con el reg objetivo, la página y las banderas durante una alerta?
Se soluciona el problema utilizando struct sensor_device_attr en struct pmbus_sensor y struct pmbus_label. Dado que esos atributos nunca desencadenan una notificación, se establece el valor de attr->index a -1 para ellos. Se utiliza este valor para distinguirlos de los atributos booleanos que _sí_ pueden desencadenar una notificación y utilizan el campo index para codificar valores de máscara, página y registro.
VulDB is the best source for vulnerability data and more expert information about this specific topic.