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

Первоисточник: https://www.freebsd.org/security/advisories/FreeBSD-SA-16:30.portsnap.asc
 
Тема: несколько уязвимостей portsnap
Категория: ядро
Модуль: portsnap
Анонсировано: 10.10.2016
Влияет на: все поддерживаемые версии FreeBSD
Исправлено в: 2016-09-28 21:33:35 UTC (stable/11, 11.0-STABLE)
2016-09-28 22:04:07 UTC (releng/11.0, 11.0-RELEASE-p1)
2016-10-05 00:33:06 UTC (stable/10, 10.3-STABLE)
2016-10-10 07:18:54 UTC (releng/10.3, 10.3-RELEASE-p10)
2016-10-10 07:18:54 UTC (releng/10.2, 10.2-RELEASE-p23)
2016-10-10 07:18:54 UTC (releng/10.1, 10.1-RELEASE-p40)
2016-10-05 01:01:10 UTC (stable/9, 9.3-STABLE)
2016-10-10 07:19:16 UTC (releng/9.3, 9.3-RELEASE-p48)
 
Для получения общей информации о рекомендациях по безопасности FreeBSD посетите https://security.FreeBSD.org/.
 
I. Общая информация
 
Утилита Portsnap используется для получения и обновления сжатых снэпшотов «дерева портов» в FreeBSD. Portsnap получает снэпшоты и обновления по HTTP протоколу, а затем криптографически проверяет загруженные файлы.
 
II. Описание проблемы
 
Изъян в процессе проверки утилитой portsnap загруженных tar файлов, позволяет включать в них дополнительные файлы и при этом успешно проходить проверку. Затем portsnap может эти файлы использовать и выполнять.
 
III. Влияние
 
Злоумышленник, который может провести «атаку через посредника» (англ. Man in the middle (MITM)) в сети во время запуска portsnap, может заставить portsnap выполнять произвольные команды с полномочиями пользователя, который его запустил, обычно это root.
 
IV. Временное решение
 
Дерево портов может быть получено не через portsnap, а другими методами, которые описаны в руководстве по FreeBSD.
 
V. Решение
 
Portsnap был модифицирован для проверки сжатых файлов внутри файла tar по полному имени, больше не полагаясь при поиске имени файла на логику gunzip. В настоящее время portsnap проверяет, чтобы снэпшоты содержали только ожидаемые файлы.
 
Обновите вашу систему до поддерживаемой FreeBSD stable или release / releng версии, выпущенной датой после устранения уязвимости.
 
Перезагрузка не требуется.
 
Выполните одно из следующих действий:
 
1) Обновите систему бинарными патчами.
 
Системы с RELEASE версией FreeBSD на i386 и amd64 платформах могут быть обновлены утилитой freebsd-update.
 
Этот бюллетень выпущен одновременно с бюллетенем FreeBSD-SA-16:29.bspatch, который содержит специальные инструкции по использованию freebsd-update. Следуя этим инструкциям также будут выполнены обновления безопасности, указанные в бюллетенях FreeBSD-SA-16:29.bspatch, FreeBSD-SA-16:30.portsnap, и FreeBSD-SA-16:31.libarchivee.
 
2) Обновите систему при помощи исходного кода патча:
 
Ниже указанные патчи будут добавлены в релизные ветки FreeBSD.
 
а) Загрузите соответствующий патч, используя ниже приведенные ссылки и проверьте PGP подпись, используя вашу утилиту PGP.

[FreeBSD 10.x]
# fetch https://security.FreeBSD.org/patches/SA-16:30/portsnap-10.patch
# fetch https://security.FreeBSD.org/patches/SA-16:30/portsnap-10.patch.asc
# gpg --verify portsnap-10.patch.asc

[FreeBSD 9.3]
# fetch https://security.FreeBSD.org/patches/SA-16:30/portsnap-9.3.patch
# fetch https://security.FreeBSD.org/patches/SA-16:30/portsnap-9.3.patch.asc
# gpg --verify portsnap-9.3.patch.asc

 

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

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

 

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

Ветвь                                                             Ревизия
- -------------------------------------------------------------------------
stable/9/                                                         r306222
releng/9.3/                                                       r306942
stable/10/                                                        r306215
releng/10.1/                                                      r306941
releng/10.2/                                                      r306941
releng/10.3/                                                      r306941
stable/11/                                                        r306213
releng/11.0/                                                      r306379
- -------------------------------------------------------------------------

 

Чтобы узнать, какие файлы были изменены в конкретной ревизии, запустите на машине с установленным 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://gist.github.com/anonymous/e48209b03f1dd9625a992717e7b89c4f
 

Новости

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