In der Bibliothek libinput 1.20.1, die einen einheitlichen Eingabestack bereitstellt, der es ermöglicht, dieselben Ereignisverarbeitungsmechanismen von Eingabegeräten in Umgebungen auf Basis von Wayland und X.Org zu nutzen, wurde eine Sicherheitsanfälligkeit (CVE-2022-1215) behoben. Diese ermöglicht das Ausführen von eigenem Code, wenn ein speziell modifiziertes oder emuliertes Eingabegerät an das System angeschlossen wird. Das Problem tritt in Umgebungen auf Basis von X.Org und Wayland auf und kann sowohl bei lokal angeschlossenen Geräten als auch bei Manipulationen mit Geräten über Bluetooth ausgenutzt werden. Wird der X-Server mit Root-Rechten ausgeführt, erlaubt die Sicherheitsanfälligkeit das Erreichen von Codeausführungen mit erhöhten Rechten.
Das Problem wurde durch einen Formatierungsfehler in der Codezeile verursacht, die für die Protokollierung der Verbindungsinformationen des Geräts verantwortlich ist. Insbesondere hat die Funktion evdev_log_msg mithilfe des Aufrufs von snprintf die ursprüngliche Formatierungszeile für das Protokoll geändert und den Gerätenamen als Präfix hinzugefügt. Die modifizierte Zeichenfolge wurde anschließend an die Funktion log_msg_va übergeben, die wiederum die Funktion printf verwendet hat. Dadurch wurden in dem ersten Argument von printf, auf das die Formatierungszeichenfolgenanalyse angewendet wurde, nicht überprüfte externe Daten übergeben, und ein Angreifer konnte einen Stack-Overflow auslösen, indem er den Gerätenamen mit Zeichen für die Formatierungszeichenfolge übergab (zum Beispiel „Evil %s“).
Quelle: opennet.ru
