Рекомендация Debian по безопасности
screen -- программа "screen" имеет переполнение буфера, которое проявляется во время копирования поля gecos.
- Дата сообщения:
- 20.02.1997
- Затронутые пакеты:
- screen
- Уязвим:
- Нет
- Ссылки на базы данных по безопасности:
- На данный момент ссылки на внешние базы данных по безопасности отсутствуют.
- Более подробная информация:
-
Выход при переполнении, но screen теряет права суперпользователя до выполнения кода.
Изначально о проблеме сообщил Khelbin <khelbin@connix.com>
Программа screen 3.07.02, если она имеет флаг прав доступа, позволяющий запускать её от лица суперпользователя, возможно вызывает переполнение буфера на некоторых платформах. Я не ознакомился со всем исходным кодом, а лишь быстро просмотрел его. Я заметил, что attacher.c выполняет следующее:
struct passwd ppp; char fullname[100]; strcpy(fullname, ppp->pw_gecos);
Мне удалось подготовить небольшой эксплоит, но он не заработал на BSDI 1.1 из-за того, что chpass/chfn не принимает некоторые символы. Таким образом, чтение в коде командной оболочки в поле Full Name приводит к выводу сообщения об ошибке "В поле Full Name обнаружен некорректный символ, редактировать [y]?" или чему-то подобному.
Любая операционная система или версия chfn/chpass, которые не осуществляют проверки наличия 'некорректных символов', либо длины того, что помещается в указанное поле (BSDI 1.1 не проверяет длину, но проверяет наличие некорректных символов) могут оказаться уязвимыми (я не проверял, теряет программа права суперпользователя или нет, я собирался проверить этой путём переполнения буфера с помощью моей строки кода командной оболочки).
Я лишь поместил мою строку кода командной оболочки в переменную ENV (с NOP и ret-адресом обратно в NOP) и отправил переменную ENV в файл. Затем прочитал данный файл во время нахождения в chpass/chfn как новую информацию gecos.