Im Dienstprogramm
Die Option „pwfeedback“ ermöglicht die Anzeige des „*“-Zeichens nach jedem eingegebenen Zeichen bei der Passworteingabe. Wegen
Der Kern des Problems besteht darin, dass bei Verwendung des Sonderzeichens ^U (Zeilenlöschen) während der Eingabe und wenn der Schreibvorgang fehlschlägt, der Code, der für das Löschen der ausgegebenen „*“-Zeichen verantwortlich ist, die Daten auf die verfügbare Puffergröße zurücksetzt, dies jedoch nicht tut Gibt den Zeiger auf den Anfangswert der aktuellen Position im Puffer zurück. Ein weiterer Faktor, der zur Ausnutzung beiträgt, ist das Fehlen einer automatischen Deaktivierung des „pwfeedback“-Modus, wenn Daten nicht vom Terminal, sondern über den Eingabestream eingehen (dieser Fehler ermöglicht die Schaffung von Bedingungen für das Auftreten eines Aufzeichnungsfehlers, beispielsweise auf Systemen mit unidirektional
Da ein Angreifer die vollständige Kontrolle über das Überschreiben von Daten auf dem Stapel hat, ist es nicht schwierig, einen Exploit zu erstellen, der es ihm ermöglicht, seine Rechte auf Root auszuweiten. Das Problem kann von jedem Benutzer ausgenutzt werden, unabhängig von Sudo-Berechtigungen oder benutzerspezifischen Einstellungen in Sudoers. Um das Problem zu blockieren, sollten Sie sicherstellen, dass in /etc/sudoers keine „pwfeedback“-Einstellung vorhanden ist und diese ggf. deaktivieren („Defaults !pwfeedback“). Um zu überprüfen, ob ein Problem vorliegt, können Sie den folgenden Code ausführen:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Passwort: Segmentierungsfehler
Source: opennet.ru