Первоисточник: 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
Оставить комментарий