Первоисточник: https://www.freebsd.org/security/advisories/FreeBSD-SA-16:36.telnetd.asc
Тема: Возможность внедрения login аргумента в telnetd
Категория: ядро
Модуль: telnetd
Анонсировано: 06.12.2016
Благодарности: Brooks Davis (при поддержке: DARPA, AFRL)
Влияет на: Все поддерживаемые версии FreeBSD.
Исправлено в: 2016-12-06 18:52:02 UTC (stable/11, 11.0-STABLE)
2016-12-06 18:49:38 UTC (releng/11.0, 11.0-RELEASE-p4)
2016-12-06 18:52:18 UTC (stable/10, 10.3-STABLE)
2016-12-06 18:49:48 UTC (releng/10.3, 10.3-RELEASE-p13)
2016-12-06 18:49:54 UTC (releng/10.2, 10.2-RELEASE-p26)
2016-12-06 18:49:59 UTC (releng/10.1, 10.1-RELEASE-p43)
2016-12-06 18:52:33 UTC (stable/9, 9.3-STABLE)
2016-12-06 18:50:06 UTC (releng/9.3, 9.3-RELEASE-p51)
CVE ID: CVE-2016-1888
Для получения общей информации о рекомендациях по безопасности FreeBSD, посетите https://security.FreeBSD.org/.
I. Общая информация
telnet демон FreeBSD, telnetd, реализует на стороне сервера протокол виртуального терминала TELNET. Он был отключен по умолчанию в FreeBSD с августа 2001 года. Из-за отсутствия криптографической защиты в протоколе TELNET, настоятельно рекомендуется использовать вместо него протокол SSH. telnet демон FreeBSD может быть включен с помощью файла конфигурации /etc/inetd.conf и inetd демона.
После того, как пользователь подключается, telnetd выполняет программу login или аналогичную, указанную в аргументе -p loginprog. Для того чтобы сделать это, он создает массив аргументов для командной строки, которые передаются execv.
II. Описание проблемы
Неожиданная последовательность ошибок выделения памяти, в сочетании с недостаточным уровнем проверки на ошибки, может привести к созданию и выполнению ложной последовательности аргументов.
III. Влияние
Злоумышленник, который управляет последовательностью ошибок выделения памяти, может запустить login без аутентификации.
В настоящее время не известно ни одного практического способа управления ошибками выделения памяти.
IV. Временное решение
Временных решений нет, однако системы, не запускающие telnet демона, не подвержены этой уязвимости.
Обратите внимание, что telnet демон обычно запускается с помощью inetd, следовательно, если соединение в данный момент не активно, он не будет отображаться в списке процессов; чтобы определить, включен ли он, запустите:
$ ps ax | grep telnetd | grep -v grep $ grep telnetd /etc/inetd.conf | grep -vE '^#'
V. Решение
Выполните одно из следующих действий:
1) Обновите вашу систему до поддерживаемой FreeBSD stable или release / releng версии, выпущенной датой после устранения уязвимости.
2) Обновите систему бинарными патчами:
Системы с RELEASE версией FreeBSD на i386 и amd64 платформах могут быть обновлены утилитой freebsd-update.
# freebsd-update fetch # freebsd-update install
3) Обновите систему при помощи исходного кода патча:
Ниже указанные патчи будут добавлены в релизные ветки FreeBSD.
а) Загрузите соответствующий патч, используя ниже приведенные ссылки и проверьте PGP подпись, используя вашу утилиту PGP.
# fetch https://security.FreeBSD.org/patches/SA-16:36/telnetd.patch # fetch https://security.FreeBSD.org/patches/SA-16:36/telnetd.patch.asc # gpg --verify telnetd.patch.asc
b) Примените патч, используя следующие команды под пользователем root:
# cd /usr/src # patch < /path/to/patch
с) Перекомпилируйте операционную систему, используя buildworld и installworld, как описанно в https://www.FreeBSD.org/handbook/makeworld.html.
Убейте все запущенные telnetd процессы или перезагрузите систему.
VI. Сведения об исправлении
Список ниже содержит номера ревизий каждой из уязвимых ветвей FreeBSD.
Ветвь Ревизия - ------------------------------------------------------------------------- stable/9/ r309643 releng/9.3/ r309637 stable/10/ r309642 releng/10.1/ r309636 releng/10.2/ r309635 releng/10.3/ r309634 stable/11/ r309641 releng/11.0/ r309633 - -------------------------------------------------------------------------
Чтобы узнать, какие файлы были изменены в конкретной ревизии, запустите на машине с установленным Subversion указанную ниже команду, заменив NNNNNN на номер ревизии.
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
Или посетите следующий URL, заменив NNNNNN на номер ревизии:
URL: https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN
VII. Рекомендации
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1888
Оставить комментарий