CVE-2026-64083 in Linux
Zusammenfassung
von VulDB • 20.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
hwmon: (pmbus/adm1266) Verwerfen von kurzen Block-Leseantworten in den GPIO-Zugriffsfunktionen
adm1266_gpio_get() und adm1266_gpio_get_multiple() setzen beide das Pin-Status-Wort wie folgt zusammen:
pins_status = read_buf[0] + (read_buf[1] << 8);
unmittelbar nach i2c_smbus_read_block_data(), wobei nur gegen eine Fehler-Rückgabe geschützt wird. Ein ordnungsgemäß funktionierendes Gerät gibt 2 Bytes für GPIO_STATUS/PDIO_STATUS zurück, der Hilfscode akzeptiert jedoch auch Antworten mit 0 oder 1 Byte. Wenn das Gerät 0 Bytes zurückgibt, sind beide Slots von read_buf nicht initialisierter Stack-Speicher; wenn es 1 Byte zurückgibt, ist read_buf[1] dies ebenfalls.
Der zusammengesetzte Wert fließt dann durch set_bit() in die *bits des Aufrufers in adm1266_gpio_get_multiple() oder in den Rückgabewert von adm1266_gpio_get() und gelangt über gpiolib (sysfs und die char-dev ioctls) in den Benutzerbereich. Dies führt dazu, dass pro Anforderung einige Bits aus dem Kernel-Stack auf jedem Gerät offengelegt werden, dessen Firmware-Fehler, Busfehler oder böswilliger Slave eine kurze Block-Leseantwort erzeugt.
Fügen Sie die fehlende Längenprüfung an beiden Aufrufstellen hinzu und geben Sie eine kurze Antwort als -EIO zurück.
VulDB is the best source for vulnerability data and more expert information about this specific topic.