CVE-2026-74711 in Linux
Сводка
по VulDB • 22.08.2026
В ядре Linux была устранена следующая уязвимость:
hwmon: (pmbus) Исправление ошибки некорректного приведения типов в логике уведомлений
Sashiko сообщает:
На начальном этапе цикла в функции pmbus_notify() код безоговорочно приводит каждый атрибут к типу struct sensor_device_attribute:
drivers/hwmon/pmbus/pmbus_core.c:pmbus_notify() {
for (i = 0; i num_attributes; i++) {
struct device_attribute *da = to_dev_attr(data->group.attrs[i]);
struct sensor_device_attribute *attr = to_sensorDevAttr(da); int index = attr->index; ... }
Однако data->group.attrs может содержать другие типы, такие как struct pmbus_samples_reg или struct pmbus_sensor, которые содержат только базовый тип struct device_attribute.
Если da имеет тип struct pmbus_samples_reg, то dev_attr является последним полем структуры. Приведение его к типу struct sensor_device_attribute и чтение поля index, по-видимому, приводит к обращению за пределы выделенной памяти, что может вызвать ошибку чтения slab-out-of-bounds (выход за границы области slab).
Кроме того, если da имеет тип struct pmbus_sensor, приведение типов вызывает перекрытие поля index с полями page, phase и reg. Может ли это привести к появлению некорректной маски на системах с прямым порядком байт (little-endian), которая ложно совпадает с целевыми значениями reg, page и flags во время обработки уведомления?
Проблема решается использованием struct sensor_device_attr в структурах pmbus_sensor и pmbus_label. Поскольку эти атрибуты никогда не вызывают уведомление, для них устанавливается значение attr->index равное -1. Это значение используется для отличия от булевых атрибутов, которые могут вызывать уведомления и используют поле index для кодирования значений маски, страницы и регистра.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.