W narzędziu
Opcja „pwfeedback” umożliwia wyświetlanie znaku „*” po każdym wprowadzonym znaku podczas wprowadzania hasła. Z powodu
Istota problemu polega na tym, że w przypadku użycia znaku specjalnego ^U (czyszczenie linii) podczas wprowadzania danych i w przypadku niepowodzenia zapisu, kod odpowiedzialny za zerowanie wyjściowych znaków „*” resetuje dane o dostępnej wielkości bufora, ale nie zwróć wskaźnik do bieżącej pozycji wartości początkowej w buforze. Dodatkowym czynnikiem przyczyniającym się do wykorzystania jest brak automatycznego wyłączania trybu „pwfeedback” w przypadku, gdy dane napływają nie z terminala, ale poprzez strumień wejściowy (wada ta pozwala stworzyć warunki do wystąpienia błędu zapisu np. na systemach z jednokierunkowy
Ponieważ atakujący ma pełną kontrolę nad nadpisywaniem danych na stosie, nie jest trudno stworzyć exploita, który pozwoli mu zwiększyć swoje uprawnienia do rootowania. Problem może wykorzystać każdy użytkownik, niezależnie od uprawnień sudo i ustawień specyficznych dla użytkownika w sudoers. Aby zablokować problem, należy upewnić się, że w /etc/sudoers nie ma ustawienia „pwfeedback” i w razie potrzeby wyłączyć je („Domyślne !pwfeedback”). Aby sprawdzić, czy wystąpił problem, możesz uruchomić kod:
$ perl -e „print((„A” x 100 . „\x{00}”) x 50)” | sudo -S identyfikator
Hasło: Błąd segmentacji
Źródło: opennet.ru