Vulnerabilità in swhkd, un gestore di shortcut per Wayland

Una serie di vulnerabilità sò state identificate in swhkd (Simple Wayland HotKey Daemon) causata da u travagliu incorrectu cù i schedarii tempuranee, i paràmetri di a linea di cummanda è i sockets Unix. U prugramma hè scrittu in Rust è gestisce a pressione di hotkey in ambienti basati nantu à u protokollu Wayland (un analogu di cunfigurazione-file-compatibile di u prucessu sxhkd utilizatu in ambienti basati in X11).

U pacchettu include un prucessu swhks senza privilegiu chì esegue azzioni di hotkey, è un prucessu swhkd di fondo chì funziona cum'è root è interagisce cù i dispositi di input à u livellu API uinput. Un socket Unix hè utilizatu per urganizà l'interazzione trà swhks è swhkd. Utilizendu e regule Polkit, ogni utilizatore locale pò eseguisce u prucessu /usr/bin/swhkd cum'è root è passà paràmetri arbitrarii.

Vulnerabilità identificate:

  • CVE-2022-27815 - Salvà un PID di prucessu in un schedariu cù un nome prevedibile è in un cartulare chì hè scrittu da altri utilizatori (/tmp/swhkd.pid). Qualchese utilizatore pò creà un schedariu /tmp/swhkd.pid è mette u pid di un prucessu esistenti in questu, chì farà chì swhkd ùn pò micca inizià. Se ùn ci hè micca prutezzione contra a creazione di ligami simbolichi in / tmp, a vulnerabilità pò esse usata per creà o soprascrivite i schedari in qualsiasi repertoriu di u sistema (u PID hè scrittu à u schedariu) o determina u cuntenutu di qualsiasi fugliale in u sistema (swhkd stampa tuttu u cuntenutu di u schedariu PID à stdout). Hè nutate chì in a correzione liberata u schedariu PID hè statu spustatu micca in u cartulare /run, ma à u cartulare /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), induve ancu ùn appartene micca.
  • CVE-2022-27814 - Manipulendu l'opzione di linea di cumanda "-c" utilizata per specificà un schedariu di cunfigurazione, hè pussibule di determinà l'esistenza di qualsiasi fugliale in u sistema. Per esempiu, per verificà /root/.somefile pudete eseguisce "pkexec /usr/bin/swhkd -d -c /root/.somefile" è se u schedariu manca, l'errore "/root/.somefile ùn esiste micca " serà affissatu. Cum'è in u casu di a prima vulnerabilità, risolve u prublema hè puzzling - risolve u prublema si riduce à u fattu chì l'utilità esterna "cat" ("Command::new ("/bin/cat")).arg (path) hè avà lanciatu per leghje u schedariu di cunfigurazione. output()').
  • CVE-2022-27819 - U prublema hè ancu ligata à l'usu di l'opzione "-c", chì face chì tuttu u schedariu di cunfigurazione sia caricatu è analizatu senza verificà a dimensione è u tipu di u schedariu. Per esempiu, per pruvucà una denegazione di serviziu escendu a memoria libera è creendu I/O spuri, pudete specificà un dispositivu di bloccu à l'iniziu ("pkexec /usr/bin/swhkd -d -c /dev/sda") o un dispositivu di caratteri chì pruduce un flussu infinitu di dati. U prublema hè stata risolta da resetting i privilegi prima di apre u schedariu, ma a correzione ùn era micca cumpleta, postu chì solu l'ID d'utilizatore (UID) hè resettatu, ma l'ID di gruppu (GID) ferma u listessu.
  • CVE-2022-27818 - Un socket Unix hè creatu utilizendu u schedariu /tmp/swhkd.sock creatu in un repertoriu scrivibile, chì porta à prublemi simili à a prima vulnerabilità (qualsiasi utilizatore pò creà /tmp/swhkd.sock è generà o intercepte). Eventi di pressa di tasti).
  • CVE-2022-27817 - L'eventi di input sò accettati da tutti i dispositi è in tutte e sessioni, i.e. un utilizatore da una altra sessione di Wayland o da a cunsola pò intercepte l'avvenimenti quandu i hotkeys sò pressati da altri utilizatori.
  • CVE-2022-27816 U prucessu swhks, cum'è swhkd, usa u schedariu PID /tmp/swhks.pid in u cartulare scrivibile /tmp. U prublema hè simile à a prima vulnerabilità, ma ùn hè micca cusì periculosa perchè swhks hè in esecuzione sottu un utilizatore senza privilegiu.

Source: opennet.ru

Add a comment