CVE-2026-64270 in Linux
Zusammenfassung
von VulDB • 25.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Input: mms114 – Ablehnung eines überdimensionierten Geräte-Paketformats
mms114_interrupt() liest ein Paket mit Touch-Daten vom Gerät in einen fest großen, stackbasierten Puffer der Struktur `struct mms114_touch touch[MMS114_MAX_TOUCH];` ein. Dieser Puffer fasst MMS114_MAX_TOUCH (10) Events von je MMS114_EVENT_SIZE (8) Bytes, also insgesamt 80 Byte. Die Länge des I2C-Lesevorgangs wird unverändert vom Gerät übernommen:
```c packet_size = mms114_read_reg(data, MMS114_PACKET_SIZE); if (packet_size <= 0) goto out; ... error = __mms114_read_reg(data, MMS114_INFORMATION, packet_size, (u8 *)touch); ```
`packet_size` ist ein einzelnes Register-Byte des Geräts (0x0F), und die einzige Prüfung erfolgt auf die untere Grenze (`packet_size <= 0`). Eine Begrenzung gegenüber der Größe von `touch[]` findet nicht statt. Ein fehlerhaftes, böswilliges oder gefälschtes Controller-Gerät (oder ein Angreifer, der den I2C-Bus manipuliert) kann einen `packet_size`-Wert bis zu 255 melden. Dadurch schreibt `__mms114_read_reg()` bis zu 175 Bytes über das Ende von `touch[]` hinaus auf dem Stack des IRQ-Threads: ein stack-out-of-bounds Write, der den Stack Canary, gespeicherte Register und die Rücksprungadresse überschreiben kann.
Ein wohlgeformtes Gerät meldet niemals mehr Daten, als der Puffer aufnehmen kann. Daher wird ein überdimensioniertes Paket abgewiesen und der Bericht verworfen, konsistent mit den anderen Fehlerpfaden des Handlers, anstatt über das Ende des Puffers hinaus zu lesen.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.