Бюллетень безопасности FreeBSD-SA-16:37.libc (неофициальный перевод)

Первоисточник: https://www.freebsd.org/security/advisories/FreeBSD-SA-16:37.libc.asc
 
Тема: Переполнение буфера link_ntoa
Категория: ядро
Модуль: libc
Анонсировано: 06.12.2016, исправлено 08.12.2016
Влияет на: Все поддерживаемые версии FreeBSD.
Исправлено в: 2016-12-07 23:19:46 UTC (stable/11, 11.0-STABLE)
2016-12-07 23:29:42 UTC (releng/11.0, 11.0-RELEASE-p5)
2016-12-07 23:20:26 UTC (stable/10, 10.3-STABLE)
2016-12-07 23:31:07 UTC (releng/10.3, 10.3-RELEASE-p14)
2016-12-07 23:32:42 UTC (releng/10.2, 10.2-RELEASE-p27)
2016-12-07 23:34:06 UTC (releng/10.1, 10.1-RELEASE-p44)
2016-12-07 23:20:50 UTC (stable/9, 9.3-STABLE)
2016-12-07 23:35:15 UTC (releng/9.3, 9.3-RELEASE-p52)
CVE ID: CVE-2016-6559
 
Для получения общей информации о рекомендациях по безопасности FreeBSD, посетите https://security.FreeBSD.org/.
 
0. История изменений
 
v1.0 06.12.2016 Первоначальная версия бюллетеня безопасности.
v1.1 08.12.2016 Бюллетень безопасности с исправленными патчами.
 
I. Общая  информация
 
Функция link_ntoa генерирует ASCII адрес канального уровня и доступна как часть стандартной библиотеки C (libC).
 
II. Описание проблемы
 
Специально созданный аргумент может вызвать статическое переполнение буфера в библиотеке, также есть вероятность переписать статические буферы других функций библиотеки.
 
III. Влияние
 
Из-за очень ограниченного использования функции в существующих приложениях, а также ограниченной длины переполнения, эксплуатация уязвимости не представляется возможной. В базовой системе не известно ни одной уязвимой утилиты или демона. Тем не менее не было выполнено тщательного анализа программного обеспечения сторонних производителей, которые могут использовать функцию.
 
IV. Временное решение
 
Временных решений нет.
 
V. Решение
 
Выполните одно из следующих действий:
 
1) Обновите вашу систему до поддерживаемой FreeBSD stable или release / releng версии, выпущенной датой после устранения уязвимости.
 
2) Обновите систему бинарными патчами:
 
Системы с RELEASE версией FreeBSD на i386 и amd64 платформах могут быть обновлены утилитой freebsd-update.

# freebsd-update fetch
# freebsd-update install

 

Перезапустите всех демонов, которые используют библиотеку, или перезагрузите систему.
 
3) Обновите систему при помощи исходного кода патча:
 
Ниже указанные патчи будут добавлены в релизные ветки FreeBSD.
 
а) Загрузите соответствующий патч, используя ниже приведенные ссылки и проверьте PGP подпись, используя вашу утилиту PGP.
 
[*** V1.1 ПРИМИЧАНИЕ ***] Если ваши исходники еще не пропатчены при помощи libc.patch, то необходимо это сделать. Если же ваши исходники уже были обновлены, или пропатчены в соответствии с первоначальной версией бюллетеня безопасности, то вам необходимо применить патч libc-inc.patch.

[FreeBSD system, not patched with initial SA-16:37 patch]
# fetch https://security.FreeBSD.org/patches/SA-16:37/libc.patch
# fetch https://security.FreeBSD.org/patches/SA-16:37/libc.patch.asc
# gpg --verify libc.patch.asc

[FreeBSD system, initial SA-16:37 patch already applied]
# fetch https://security.FreeBSD.org/patches/SA-16:37/libc-inc.patch
# fetch https://security.FreeBSD.org/patches/SA-16:37/libc-inc.patch.asc
# gpg --verify libc-inc.patch.asc

 

b) Примените патч, используя следующие команды под пользователем root:

# cd /usr/src
# patch < /path/to/patch

 

с) Перекомпилируйте операционную систему, используя buildworld и installworld, как описанно в https://www.FreeBSD.org/handbook/makeworld.html.
 
Перезапустите все демоны, которые используют библиотеку, или перезагрузите систему.
 
VI. Сведения об исправлении
 
Список ниже содержит номера ревизий каждой из уязвимых ветвей FreeBSD.

Ветвь                                                             Ревизия
- -------------------------------------------------------------------------
stable/9/                                                         r309691
releng/9.3/                                                       r309697
stable/10/                                                        r309690
releng/10.1/                                                      r309696
releng/10.2/                                                      r309694
releng/10.3/                                                      r309693
stable/11/                                                        r309689
releng/11.0/                                                      r309692
- -------------------------------------------------------------------------

 

Чтобы узнать, какие файлы были изменены в конкретной ревизии, запустите на машине с установленным Subversion указанную ниже команду, заменив NNNNNN на номер ревизии.

# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base

 

Или посетите следующий URL, заменив NNNNNN на номер ревизии:

URL: https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN

 

VII. Рекомендации
 
http://www.kb.cert.org/vuls/id/548487
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6559
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215105
 

Новости

Оставить комментарий