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

Первоисточник: https://www.freebsd.org/security/advisories/FreeBSD-SA-16:29.bspatch.asc
 
Тема: heap overflow уязвимость в bspatch
Категория: ядро
Модуль: bsdiff
Анонсировано: 10.10.2016
Влияет на: все поддерживаемые версии FreeBSD
2016-09-22 21:05:21 UTC (stable/11, 11.0-STABLE)
2016-09-27 19:36:12 UTC (releng/11.0, 11.0-RELEASE-p1)
2016-09-22 21:16:54 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-09-23 01:52:06 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. Общая информация
 
Утилита bspatch генерирует новый файл, используя для этого старый файл и файл патча, где файл патча — это бинарный патч, полученный с помощью bsdiff.
 
II. Описание проблемы
 
Тщательно обработанный ввод в bspatch может привести к ошибке типа integer overflow, что потенциально позволяет злоумышленнику, контролирующему патч-файл, сделать запись в динамическую память программы. Эта проблема была частично решена в FreeBSD-SA-16: 25.bspatch, однако возможность получить ошибку типа integer overflow остаётся.
 
III. Влияние
 
Злоумышленник, контролирующий патч-файл, может вызвать сбой системы или запустить произвольный код с полномочиями пользователя, запустившего bspatch. Часто таким пользователем становится root.
 
IV. Временное решение
 
Временных решений нет.
 
V. Решение
 
Обновите вашу систему до поддерживаемой FreeBSD stable или release / releng версии, выпущенной датой после устранения уязвимости.
 
Перезагрузка не требуется.
 
Выполните одно из следующих действий:
 
1) Обновите систему бинарными патчами.
 
Системы с RELEASE версией FreeBSD на i386 и amd64 платформах могут быть обновлены утилитой freebsd-update.
 
Поскольку уязвимость в bspatch, который является компонентом утилиты freebsd-update, то перед обновлением следует выполнить специальную процедуру, а именно обнулить bspatch:

# :> /usr/bin/bspatch

 

Freebsd-update заменит bspatch перед установкой бинарных патчей. Продолжим с freebsd-update, как обычно:

# freebsd-update fetch
# freebsd-update install

 

Перезагрузка не требуется.
 
2) Обновите систему при помощи исходного кода патча:
 
Ниже указанные патчи будут добавлены в релизные ветки FreeBSD.
 
а) Загрузите соответствующий патч, используя ниже приведенные ссылки и проверьте PGP подпись, используя вашу утилиту PGP.

# fetch https://security.FreeBSD.org/patches/SA-16:29/bspatch.patch
# fetch https://security.FreeBSD.org/patches/SA-16:29/bspatch.patch.asc
# gpg --verify bspatch.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
 

Новости

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