Vulnerabilità in xterm che porta all'esecuzione di codice durante l'elaborazione di determinate stringhe

È stata identificata una vulnerabilità (CVE-2022-45063) nell'emulatore di terminale xterm, che consente l'esecuzione di comandi shell quando determinate sequenze di escape vengono elaborate nel terminale. Per un attacco nel caso più semplice, è sufficiente visualizzare il contenuto di un file appositamente progettato, ad esempio utilizzando l'utilità cat, o incollare una riga dagli appunti. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Il problema è causato da un errore nella gestione della sequenza di escape del codice 50 utilizzata per impostare o recuperare le opzioni dei caratteri. Se il carattere richiesto non esiste, l'operazione restituisce il nome del carattere specificato nella richiesta. Non è possibile inserire direttamente caratteri di controllo nel nome, ma la stringa restituita può essere terminata con la sequenza "^G", che in zsh, quando è attiva la modalità di modifica della riga in stile vi, provoca l'esecuzione di un'operazione di espansione della lista, che può essere utilizzato per eseguire comandi senza premere esplicitamente il tasto Invio.

Per sfruttare con successo la vulnerabilità, l'utente deve utilizzare la shell dei comandi Zsh con l'editor della riga di comando (vi-cmd-mode) impostato sulla modalità “vi”, che di solito non viene utilizzata per impostazione predefinita nelle distribuzioni. Il problema non si verifica nemmeno quando sono impostate le impostazioni xtermallowWindowOps=false oallowFontOps=false. Ad esempio,allowFontOps=false è impostato in OpenBSD, Debian e RHEL, ma non è applicato per impostazione predefinita in Arch Linux.

A giudicare dall'elenco delle modifiche e dalla dichiarazione del ricercatore che ha identificato il problema, la vulnerabilità è stata risolta nella versione xterm 375, ma secondo altre fonti la vulnerabilità continua a comparire in xterm 375 di Arch Linux. Puoi tenere traccia della pubblicazione delle correzioni da parte delle distribuzioni su queste pagine: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Fonte: opennet.ru

Aggiungi un commento