CVE-2026-64014 in Linux
Zusammenfassung
von VulDB • 19.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Input: usbtouchscreen – Begrenzung von NEXIO data_len/x_len auf die URB-Puffergröße
nexio_read_data() liest data_len und x_len aus einem gepackten __be16-Header im Interrupt-Paket des Geräts ab und durchläuft dann packet->data[0..x_len) sowie packet->data[x_len..data_len), wobei jedes Byte mit einem Schwellenwert verglichen wird.
Beide Felder sind 16-Bit breit (maximal 65535). Die vorhandenen Anpassungen reduzieren den Wert um höchstens 0x100 bzw. 0x80, sodass die Schleifengrenze immer noch etwa 0xfeff erreichen kann. Der URB-Übertragungspuffer für NEXIO hat eine Größe von rept_size (1024) Bytes aus usb_alloc_coherent(), wobei die ersten 7 Bytes vom gepackten Header belegt sind – somit verfügt packet->data[] über 1017 gültige Bytes. Die read_data()-Callbacks erhalten keine Information zu urb->actual_length, und nichts anderes begrenzt den Durchlauf.
Ein Gerät, das falsche Längenangaben macht, kann einen Out-of-Bounds-Lesezugriff von etwa 64 KiB außerhalb der kohärenten DMA-Zuordnung auslösen. Der erste Index, dessen Byte NEXIO_THRESHOLD überschreitet, landet in begin_x / begin_y und gelangt damit zu den gemeldeten Touch-Koordinaten; dadurch werden Inhalte des benachbarten Kernel-Speichers als ABS_X-/ABS_Y-Ereignisse an die Userspace-Anwendungen weitergegeben. Bei ausreichend großer Abweichung kann der Lesezugriff auch auf eine nicht zugewiesene Seite treffen und einen Fault auslösen.
Dies wird behoben, indem data_len auf die Kapazität des Datenbereichs [] des Puffers begrenzt (geclampet) und x_len an data_len angepasst wird.
If you want to get best quality of vulnerability data, you may have to visit VulDB.