Zer0must2b
Green Team
				
			
- 23.06.2019
- 306
- 140
Что имеем:
Параметр Sudo pwfeedback может использоваться для обеспечения визуальной обратной связи, когда пользователь вводит свой пароль. Для каждого нажатия клавиши печатается звездочка. Эта опция была добавлена в ответ на путаницу пользователей по поводу того, как стандартная подсказка Password: отключает отображение нажатий клавиш. Хотя pwfeedback не включен по умолчанию в исходной версии sudo, некоторые системы, такие как Linux Mint и Elementary OS, включают его в своих файлах sudoers по умолчанию. Из-за ошибки, когда опция pwfeedback включена в файле sudoers, пользователь может вызвать переполнение буфера в стеке. Эта ошибка может быть вызвана даже пользователями, не указанными в файле sudoers. Нет никакого влияния, если pwfeedback не был включен.
Изменения в версиях Sudo:
С версии Sudo 1.7.1 до 1.8.25p1 включительно это имеет значение, но только если в sudoers включена опция pwfeedback. Хотя логическая ошибка также присутствует в версиях sudo с 1.8.26 по 1.8.30, она не может быть использована из-за изменений в обработке EOF, представленных в sudo 1.8.26.
Пользователь с привилегиями sudo может проверить, включен ли pwfeedback, запустив:
sudo -lЕсли pwfeedback указан в выходных данных «Дефолтные записи по умолчанию», это повлияет на конфигурацию sudoers. В следующем примере конфигурация sudoers уязвима:
		Код:
	
	$ sudo -l
    Matching Defaults entries for millert on linux-build:
    insults, pwfeedback, mail_badpass, mailerpath=/usr/sbin/sendmail
    User millert may run the following commands on linux-build:
    (ALL : ALL) ALLCVE ID:
This vulnerability has been assigned
	Ссылка скрыта от гостей
 in the 
	
	Ссылка скрыта от гостей
 database.Детали:
Эксплуатация ошибки не требует разрешений sudo, просто включите pwfeedback. Ошибка может быть воспроизведена путем передачи большого ввода в sudo через канал, когда он запрашивает пароль. Например:
		Код:
	
	$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
    Password: Segmentation faultЕсть два недостатка, которые способствуют этой уязвимости:
- Параметр pwfeedback не игнорируется, как должно быть, при чтении с чего-либо другого, кроме терминального устройства. Из-за отсутствия терминала сохраненная версия символа стирания строки остается в своем первоначальном значении 0.
- Код, удаляющий строку звездочек, не сбрасывает должным образом позицию буфера в случае ошибки записи, но сбрасывает оставшуюся длину буфера. В результате функция getln () может записывать после конца буфера.
Влияние:
Это не повлияет, если pwfeedback не включен в файле sudoers.
Если в sudoers включен pwfeedback, переполнение стека может позволить непривилегированным пользователям перейти в корневую учетную запись. Поскольку злоумышленник полностью контролирует данные, используемые для переполнения буфера, существует высокая вероятность использования.
Временное решение:
Если в файле sudoers включена функция pwfeedback, достаточно отключить его, ожидая восклицательный знак, чтобы предотвратить использование ошибки. Например, изменить:
 Defaults pwfeedback На:
Defaults !pwfeedbackПосле отключения pwfeedback в sudoers с помощью команды visudo, пример вывода sudo -l становится:
		Код:
	
	$ sudo -l
    Matching Defaults entries for millert on linux-build:
    insults, mail_badpass, mailerpath=/usr/sbin/sendmail
    User millert may run the following commands on linux-build:
    (ALL : ALL) ALLИсправлено:
Баг был исправлен в sudo 1.8.31.
Баг был обнаружен и проанализирован Joe Vennix из Apple Information Security
Источник:
	Ссылка скрыта от гостей
			
				Последнее редактирование: 
				
		
	
										
										
											
	
										
									
								 
	 
	 
	 
	 
	 
 
		
 
 
		 
 
		 
 
		 
 
		 
 
		 
	