Nella biblioteca libinput 1.20.1, che fornisce un stack di input unificato che consente di utilizzare gli stessi strumenti di gestione degli eventi per i dispositivi di input in ambienti basati su Wayland e X.Org, è stata corretta una vulnerabilità (CVE-2022-1215) che consente l'esecuzione di codice maligno collegando un dispositivo di input modificato/emulato al sistema. Il problema si manifesta negli ambienti basati su X.Org e Wayland e può essere sfruttato sia con il collegamento locale dei dispositivi che con le manipolazioni dei dispositivi con interfaccia Bluetooth. Se il server X viene eseguito con privilegi di root, la vulnerabilità consente di ottenere l'esecuzione di codice con privilegi elevati.
Il problema è causato da un errore nel formato della stringa nel codice che gestisce il logging delle informazioni sul collegamento del dispositivo. In particolare, la funzione evdev_log_msg, tramite la chiamata a snprintf, modificava la stringa di formato originale del log, a cui veniva aggiunto come prefisso il nome del dispositivo. La stringa modificata veniva poi trasmessa alla funzione log_msg_va, che a sua volta utilizzava la funzione printf. Così, nel primo argomento di printf, su cui viene applicato l'analisi dei caratteri di formato, si trovavano dati esterni non verificati, e un attaccante poteva innescare un danneggiamento dello stack restituendo il nome del dispositivo contenente caratteri di formato (ad esempio, "Evil %s").
Fonte: opennet.ru
