CVE-2026-64363
Beschreibung
Im Linux-Kernel wurde die folgende Sicherheitsanfälligkeit behoben: HID: appleir: fix UAF on pending key up timer in remove() appleir remove() führt hid hw stop() vor timer delete sync() aus. hid hw stop() unregistriert synchron das HID-Eingabegerät über hid disconnect() -> hidinput disconnect() -> input unregister device(), das die letzte Referenz fallen lässt und den zugrunde liegenden input dev freigibt, wenn kein Benutzerbereich ihn geöffnet hält. key up tick() liest appleir->input dev und ruft input report key() / input sync() auf. Der Timer ist von appleir raw event() mit einem HZ/8 (~125 ms) Timeout für jeden Keydown- und Key-Repeat-Bericht bewaffnet. Wenn eine Taste kurz vor dem Trennen des Geräts gedrückt wurde, kann der Timer feuern, nachdem hid hw stop() input dev freigegeben hat, aber bevor das Teardown es abläuft. Eine einfache Neubestellung reicht nicht aus. Wenn Sie den Timer Drain zuerst setzen, bleibt immer noch ein Fenster, in dem eine USB-URB-Vervollständigung (raw event), die während hid hw stop() ausgeführt wird, mod timer() aufrufen und den Timer erneut aktivieren kann, der dann nach hidinput disconnect() feuert hat input dev freigegeben. Mit dem gleichen URB-Vervollständigungsfenster kann raw event() auch key up(), key down() und battery flat() direkt erreichen, die alle dereference appleir->input dev sind. Führen Sie eine "Entfernungs" -Flagge auf Struktur-Appleir ein, die vom vorhandenen Spinlock bewacht wird. appleir remove() setzt das Flag unter der Sperre und schließt dann den Timer mit timer shutdown sync(), der sowohl jeden Rückruf während des Fluges abschaltet als auch weitere mod timer()-Aufrufe dauerhaft deaktiviert. appleir raw event() und key up tick() retten sich früh, wenn das Flag gesetzt ist, so dass kein Pfad den Timer bewaffnen oder ausführen kann, oder appleir->input dev, nachdem remove() mit dem Abreißen begonnen hat. Die keyrepeat- und flatbattery-zweige von appleir raw event() wurden zuvor in die input-schicht aufgerufen, ohne den spinlock zu halten; nehmen sie es jetzt, damit der flag-check gut definiert ist. Dies schließt übrigens ein bereits bestehendes read-side-rennen auf appleir>current key im keyrepeat-zweig. Dieser Fehler ist strukturell ein Geschwister von Commit 4db2af929279 ("HID: appletb-kbd: fix UAF in inactivity-timer cleanup path") und ist seit der Einführung des Treibers vorhanden.
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Herstellerhinweise prüfen und das betroffene Produkt kurzfristig patchen oder kompensierende Schutzmaßnahmen aktivieren.
Empfohlene Schritte
- Betroffene Systeme identifizieren: linux linux kernel.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Hersteller-Advisory öffnen und verfügbare Updates, Workarounds oder Deaktivierungen prüfen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.