Nell'utilità
L'opzione “pwfeedback” abilita la visualizzazione del carattere “*” dopo ogni carattere inserito quando si inserisce una password. Per colpa di
L'essenza del problema è che quando si utilizza il carattere speciale ^U (cancellazione della riga) durante l'input e se l'operazione di scrittura fallisce, il codice responsabile della cancellazione dei caratteri "*" in output reimposta i dati sulla dimensione del buffer disponibile, ma non riporta il puntatore al valore iniziale della posizione corrente nel buffer. Un altro fattore che contribuisce allo sfruttamento è la mancata disattivazione automatica della modalità “pwfeedback” quando i dati arrivano non dal terminale, ma attraverso il flusso di input (questa falla consente di creare le condizioni affinché si verifichi un errore di registrazione, ad esempio, su sistemi con unidirezionale
Poiché un utente malintenzionato ha il controllo completo sulla sovrascrittura dei dati nello stack, non è difficile creare un exploit che gli consenta di aumentare i suoi privilegi fino a root. Il problema può essere sfruttato da qualsiasi utente, indipendentemente dalle autorizzazioni sudo o dalle impostazioni specifiche dell'utente in sudoers. Per bloccare il problema, dovresti assicurarti che non ci sia alcuna impostazione “pwfeedback” in /etc/sudoers e, se necessario, disabilitarla (“Defaults!pwfeedback”). Per verificare se c'è un problema, puoi eseguire il codice:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Password: errore di segmentazione
Fonte: opennet.ru