La libreria libinput 1.20.1, che fornisce uno stack di input unificato che consente di utilizzare gli stessi mezzi di elaborazione degli eventi dai dispositivi di input in ambienti basati su Wayland e X.Org, ha eliminato una vulnerabilità (CVE-2022-1215), che consente di organizzare l'esecuzione del codice quando si collega al sistema un dispositivo di input appositamente modificato/emulato. Il problema si manifesta in ambienti basati su X.Org e Wayland e può essere sfruttato sia quando si collegano dispositivi localmente sia quando si manipolano dispositivi dotati di interfaccia Bluetooth. Se il server X è in esecuzione come root, la vulnerabilità consente l'esecuzione del codice con privilegi elevati.
Il problema è causato da un errore di formattazione della riga nel codice responsabile dell'output delle informazioni sulla connessione del dispositivo nel registro. In particolare la funzione evdev_log_msg, tramite una chiamata a snprintf, ha modificato la stringa di formato originale della voce di log, alla quale è stato aggiunto come prefisso il nome del dispositivo. Successivamente, la stringa modificata è stata passata alla funzione log_msg_va, che a sua volta utilizzava la funzione printf. Pertanto, il primo argomento di printf, a cui è stata applicata l'analisi dei caratteri di formato, conteneva dati esterni non convalidati e un utente malintenzionato potrebbe avviare la corruzione dello stack facendo sì che il dispositivo restituisse un nome contenente caratteri di formato stringa (ad esempio, "Evil %s") .
Fonte: opennet.ru