CVE-2026-80780 in Linuxinfo

Zusammenfassung

von VulDB • 04.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

HID: pidff: Behebung eines OOB-Write (Out-of-Bounds-Schreiben), wenn hid->inputs leer ist

hid_pidff_init_with_quirks() leitet sein input_dev aus

list_entry(hid->inputs.next, struct hid_input, list)

ab, ohne vorher zu prüfen, ob hid->inputs nicht leer ist. Das Listenelement von struct hid_input befindet sich an Offset 0; bei einer leeren Liste liefert list_entry() daher &hid->inputs selbst, und der folgende Lesezugriff auf hidinput->input liest ein unzusammenhängendes Mitglied von struct hid_device. dev ist daraufhin ein typverwechslungsanfälliger (type-confused) Zeiger, und die Initialisierung des Force-Feedbacks schreibt darüber: Jeder Aufruf von set_bit(FF_*, dev->ffbit) speichert 8 Bytes bei der Adresse dev + 192, also jenseits des tatsächlichen Endes des Objekts, das durch dev aliasiert wird. Darüber hinaus fügt input_ff_create() weitere Schreibzugriffe auf einen Heap-Zeiger und zwei Funktionszeiger hinzu.

Bis zur Einführung von hid-universal-pidff war der einzige Aufrufer hid_pidff_init() aus usbhid, welches unter HID_CLAIMED_INPUT ausgeführt wird und daher immer mindestens ein hid_input besitzt. universal_pidff_probe() startet das Gerät mit HID_CONNECT_DEFAULT & ~HID_CONNECT_FF und ruft dann direkt hid_pidff_init_with_quirks() auf, sobald der Deskriptor eine PID-Nutzungsseite (PID usage page) enthält, wodurch diese Schutzmaßnahme umgangen wird. Ein Berichtsdeskriptor, dessen einzige Anwendungs-Sammlung sich auf HID_UP_PID befindet, hinterlässt hid->inputs als leer, während hid_connect() über die hidraw-Zuordnung weiterhin erfolgreich ist; somit erreicht probe den ungeschützten list_entry()-Aufruf.

Der Schreibzugriff erfolgt im USB-Probe-Pfad, auf der Hotplug-Arbeitswarteschlange (workqueue); das Anschließen eines bösartigen Geräts reicht aus, um dies auszulösen. Es sind keine Angreifer-Software und kein angemeldeter Benutzer erforderlich. KASAN meldet einen 8-Byte-OOB-Schreibzugriff in hid_pidff_init_with_quirks(), der von universal_pidff_probe() erreicht wird.

Es sollte vor dem Ableiten von dev auf eine leere Liste geprüft werden, und es ist -ENODEV zurückzugeben, wie dies bei den anderen HID Force-Feedback-Treibern bereits geschieht. universal_pidff_probe() gibt diesen Fehler weiter und führt ein Unwinding (Rückabwicklung) durch.

Entdeckt von XBOW, triagiert von Baul Lee <[email protected]>

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Zuständig

Linux

Reservieren

26.08.2026

Veröffentlichung

04.09.2026

Moderieren

akzeptiert

Eintrag

VDB-398912

CPE

bereit

EPSS

0.00181

KEV

nein

Aktivitäten

very low

Quellen

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!