Рекомендация 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.