CVE-2026-80918 in Linux
Zusammenfassung
von VulDB • 09.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
HID: core – Behebung der Verwechslung von Zahl-/Zeigertypen bei langen Elementen (long items)
Wenn `fetch_item()` von `hid_scan_report()` für ein Element mit dem Tag `HID_ITEM_TAG_LONG` aufgerufen wird, speichert es einen Zeiger auf die Elementdaten in `item->data.longdata`, anstatt den Wert direkt in `item->data.{u8/u16/u32}` zu speichern.
Wenn `item_udata()` oder `item_sdata()` auf ein solches Element trifft, geht es fälschlicherweise davon aus, dass das Element im Kurzformat (short format) vorliegt und gibt daher den unteren Teil eines Kernel-Zeigers zurück, der als Zahl neu interpretiert wird.
Wird ein HID-Gerät angeschlossen, dessen Deskriptor einen `HID_GLOBAL_ITEM_TAG_REPORT_SIZE` enthält, der im Langformat mit size=4 codiert ist, führt dies dazu, dass die untere Hälfte eines Kernel-Zeigers als Zahl in dmesg ausgegeben wird, wie hier:
hid (null): invalid report_size 107953555
Um das Problem zu beheben, müssen `item_udata()` und `item_sdata()` überprüfen, ob das Element im Kurzformat vorliegt.
Hinweis: Dieser Bug betrifft nur `hid_scan_report()`, während der Haupt-Parsingschritt `hid_parse_collections()` beim Auftreten eines langen Elements (long item) immer abbrechen wird.
Nebenbemerkung: Derzeit gibt es keine Nutzer von `data.longdata`; möglicherweise sollten wir das Parsen von Deskriptoren im Langformat als Folgemaßnahme einfach entfernen.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.