Vulnerabilità in libinput che porta all'esecuzione di codice quando viene connesso un dispositivo dannoso

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

Aggiungi un commento