LINUX.ORG.RU

В GnuTLS выявлена и исправлена крайне опасная уязвимость

 , ,


1

3

В процессе аудита кода GnuTLS (свободной реализации протоколов TLS и SSL, предоставляющей приложениям API для обеспечения надежной связи по протоколам транспортного уровня) сотрудниками RedHat была обнаружена критическая уязвимость CVE-2014-0092.

Данная уязвимость схожа с недавно опубликованной уязвимостью в iOS и MacOS, когда из-за одной строчки кода проверка подлинности сертификатов фактически не выполнялась. Уязвимость находится в коде, отвечающем за проверку подлинности сертификатов X.509, и позволяет обойти эту проверку на всех выпусках GnuTLS с помощью специальным образом созданного сертификата. Например, злоумышленник может организовать атаку типа Man-in-the-Middle, а затем использовать поддельный сертификат для перехвата зашифрованного трафика жертвы. Некоторые эксперты по безопасности не исключают даже возможности распространения фальшивых обновлений пакетов в дистрибутивах Linux, поскольку невозможно с уверенностью сказать, не была ли их цифровая подпись подделана.

В одном только Debian библиотеки GnuTLS используются более, чем 350 пакетами. Уязвимости подвержены даже такие библиотеки, как libcrypt, libmailutils и cURL, которые тоже завязаны на GnuTLS, и используются для обновления других пакетов и работы почтовых приложений. Проблема усугубляется тем, что по лицензионным соображениям Debian и Ubuntu используют GnuTLS вместо OpenSSL, поэтом проблема затрагивает уже установленные Nginx, Apache и приложения VPN.

>>> Подробности

anonymous

Проверено: Shaman007 ()

Тотально будем обновляться...

DeadEye ★★★★★ ()

Когда уже патчи будут доступны?

rezedent12 ☆☆☆ ()

Червоточина, но никак не решето.

Meyer ★★★ ()

Я так понимаю, что тут все же не настолько страшная дыра, как у Эппл. Там проверка сертификатов рапортовала, что все ок в любом случае - какая бы подпись ни была, так как не срабатывал условный переход «если подпись не валидна - прыгаем на код, отвечающий за фейл». А тут нужно было об этой дыре знать и специальным образом сгененировать сертификат, чтобы он прошел проверку будучи левым. Хотя, все равно неприятно, очень похоже на бэкдор. На опеннете по этому поводу даже написали:

Уязвимость оценивается как очень серьёзная и подрывающая доверие к проекту. Ховард Чу (Howard Chu), главный архитектор проекта OpenLDAP, ещё в 2008 году выступал с рекомендацией прекращения использования GnuTLS в связи с несоблюдением элементарных правил безопасности в кодовой базе GnuTLS, в частности, повсеместном использовании функций strlen и strcat. По мнению Ховарда, исправить ситуацию может только полный пересмотр API GnuTLS.

anonymous ()
Ответ на: комментарий от rezedent12

Так уже исправили, новый релиз выпустили. Когда мейнтейнеры соберут - появится и в дистрах.

anonymous ()
Ответ на: комментарий от rezedent12

По идее - очень быстро. Очень надеюсь, что дебиановцы все же удосужатся пошевелить задницами

Meyer ★★★ ()

поскольку невозможно с уверенностью сказать, не была ли их цифровая подпись подделана.

Это шедевр я считаю!

Теперь придется проводить полный аудит кода и собирать LFS.

anonymous ()

Проблема усугубляется тем, что по лицензионным соображениям Debian и Ubuntu используют GnuTLS вместо OpenSSL

Так-то. Религиозные фоннатики должны страдать. Парни из *BSD лажи не делают.

yoghurt ★★★★★ ()
Ответ на: комментарий от Meyer

Как раз таки обновление Debain мне и интересно. А то сегодня обновил, а ничего связанного с TSL там нет. Хромоног только которым я не пользуюсь.

rezedent12 ☆☆☆ ()
Ответ на: комментарий от anonymous

А нефиг было Столлману в те времена губу катать! Вот дядя со злости и понаписал ерунды :)

gh0stwizard ★★★★★ ()

Это надо же так обосраться, ребята? Тезис о том, что опенсорс более безопасен, поскольку миллионы глаз и т.д. опять себя дискредитировал. С ужасом думаю о том, сколько таких дыр скрыто в самом линуксе.

anonymous ()

После позапрошлого факапа GnuTLS я по возможности обхожу его стороной, но спасибо за информацию.

wakuwaku ★★★★ ()
Ответ на: комментарий от anonymous

очевидно он более безопасен . Скажем, никому не известно как подобная библиотека работает в винде и как именно надо сформировать сертификат чтобы обойти проверку. Ну, почти никому..

AndreyKl ★★★★★ ()
Ответ на: комментарий от Meyer

Очень надеюсь, что дебиановцы все же удосужатся пошевелить задницами

Они ещё первого марта пошевелили.

gnutls26 (2.12.20-8+deb7u1) wheezy-security; urgency=high

  * 38_CVE-2014-0092.diff by Nikos Mavrogiannopoulos: Fix certificate
    validation issue. CVE-2014-0092

 -- Andreas Metzler <ametzler@debian.org>  Sat, 01 Mar 2014 07:44:51 +0100

anonymous ()

Debian oldstable. GnuTLS уже обновился.

Zubok ★★★★★ ()
Ответ на: комментарий от rezedent12

Вот и мне тоже интересно, сам на дебиане сижу)

Meyer ★★★ ()

кто-то может привести список пакетов/программ, в которых используется GnuTLS?
Там у многих дебиан, попробуйте, пожалуйста, apt-get-ом удалить пакет, оно спросит подтверждение, указав на список зависимых пакетов.

И да, всё это как-то касается BSD? sshd вроде использует OpenSSL...

reprimand ★★★★★ ()
Ответ на: комментарий от yoghurt

Так-то. Религиозные фоннатики должны страдать. Парни из *BSD лажи не делают.

Да ла-а-адно. :) Глянь, кстати внизу футер, где схожие новости. :)

Zubok ★★★★★ ()
Ответ на: комментарий от X-Pilot

Можешь осторожно поспрашивать коллег про shared libraries.

anonymous ()

Центося ещё вчера обновила gnutls.

d_a ★★★★★ ()

Проблема усугубляется тем, что по лицензионным соображениям Debian и Ubuntu используют ...

только я прочитал «по религиозным...» ?

q11q11 ★★★★★ ()
Ответ на: комментарий от anonymous

Так уже исправили, новый релиз выпустили. Когда мейнтейнеры соберут - появится и в дистрах.

В дистрах одно-двухгодичной давности может и не появиться. И при этом о технических подробностях дыры раструбили на весь интернет чтобы даже самый ленивый крякер смог ею воспользоваться - вот такая в линуксе хентайная безопасность.

Napilnik ★★★★★ ()
Ответ на: комментарий от AndreyKl

очевидно он более безопасен . Скажем, никому не известно как подобная библиотека работает в винде и как именно надо сформировать сертификат чтобы обойти проверку. Ну, почти никому..

Зато о случайной дыре в закрытом коде злоумышленники могут так и не узнать, или узнать после выхода патча, сущность которого не вполне ясна. В свободном же коде любой желающий может копаться до посинения а найденные критичные уязвимости выставлять на аукцион:) И так плохо, и этак не совсем хорошо.

Napilnik ★★★★★ ()

В Debian уже давно пофиксили.

NaN ()
Ответ на: комментарий от Napilnik

Зато о случайной дыре в закрытом коде злоумышленники могут так и не узнать, или узнать после выхода патча, сущность которого не вполне ясна. В свободном же коде любой желающий может копаться до посинения а найденные критичные уязвимости выставлять на аукцион:) И так плохо, и этак не совсем хорошо.

Не могу согласиться. В случае открытого ПО существует хотя бы потенциальная возможность аудита кода. Конечно, к этой потенциальной возможности ещё нужно прикрутить какое нибудь НИИ которое только тем бы и занималось что аудировало код и может быть не одно. Но в случае проприетарного ПО даже потенциальной возможности нет.

AndreyKl ★★★★★ ()
Ответ на: комментарий от anonymous

-goto cleanup; +goto fail;

Беру свои слова «не как у Эппл» обратно. Именно это же было в яблоках. Вместо прыжка на код «фейл, сертификат невалидный» продолжалось обычное выполнение программы. Прямо один в один ошибка, словно копипастили.

anonymous ()
Ответ на: комментарий от anonymous

То есть, фактически, можно подсунуть любой сертификат, юзеру будет показано, что все ок. Полная иллюзия защиты при отсутствии оной. АНБ даже и напрягаться не надо со всеми этими бэкдорами, можно просто взять и сниффать траффик, расшифровывая на лету. Это не просто фейл, это дискредитация библиотеки.

anonymous ()

По-моему, они все рехнулись — у них там совсем тестов никаких нет?

true_admin ★★★★★ ()

Сегодня с утра в дебиане обновление вроде как упало.

leg0las ★★★★★ ()
Ответ на: комментарий от anonymous

нет, тут немного не так. функция проверки сертификата должна возвращать true «1» если сертификат ок, и false «0» если нет. ошибка в промежуточной логике if (result < 0) { return result; } когда в случае ошибки функция может возвращать отрицательное значение. собственно пачт добавляет fail: которая устанавливает result = 0 перед возвратом. появился этот странный код в https://www.gitorious.org/gnutls/gnutls/commit/0fba2d9#lib/x509/verify.c уже с багом.

исправили не в том патче, который тут обсуждают, а немного раньше в https://www.gitorious.org/gnutls/gnutls/commit/78ecc5c#lib/x509/verify.c . там заменили проверку сертификата с «если неправильный» на «если не правильный»:

- if (check_if_ca(cert, issuer, flags) == 0) {

+ if (check_if_ca(cert, issuer, flags) != 1) {

патч с goto, просто рефакторинг «по мотивам».

anonymous ()
Ответ на: комментарий от yoghurt

Впринципе если найдут баг в реализации printf, то даже hello, world! вполне может стать уязвима.

nt_crasher ★★★ ()
Ответ на: комментарий от reprimand

кто-то может привести список пакетов/программ, в которых используется GnuTLS?

В Gentoo вот так (правда это не совсем полный список):

$ equery hasuse -F '$name' -p gnutls | sort | uniq
anubis
aria2
bitlbee
claws-mail
climm
commoncpp2
cone
courier
courier-imap
cups
echoping
ecore
eet
efl
ekg2
emacs
emacs-vcs
exim
ffmpeg
gkrellm
gloox
gnome-vfs
gsoap
gurlchecker
iksemel
inspircd
iputils
iroffer-dinoex
jd
kildclient
ldapvi
lftp
libdexter
libetpan
libgadu
libggz
libimobiledevice
libmail
libvncserver
litmus
lynx
macopix
minbif
mpop
msmtp
mutt
nagios-plugins
neon
networkmanager
ngircd
nzbget
openconnect
opendkim
openldap
pidgin
pkcs11-helper
postal
rpm5
rtmpdump
samba
scrollz
shishi
sipsak
ssmtp
telepathy-gabble
telepathy-salut
tigervnc
tntnet
ucommon
vlc
vpnc
wget
wine
wpa_supplicant
wwwoffle
xmlsec
edigaryev ★★★★★ ()
Ответ на: комментарий от reprimand

apt-cache rdepends libgnutls26 | tail -n+3 | xargs -I {} dpkg-query -W -f='${Status} ${Package}\n' {} 2>&1 | awk '/install ok/{print $4}' | sort | uniq

aria2 chromium-browser cups-daemon empathy glib-networking gstreamer1.0-plugins-bad lftp libavformat-extra-53 libcups2 libcurl3-gnutls libgcrypt11 libgnomevfs2-0 libgnustep-base1.24 libgnutls26 libgnutls-openssl27 libimobiledevice4 libldap-2.4-2 libneon27-gnutls librtmp0 libvncserver0 ntfs-3g telepathy-gabble telepathy-salut vino wine1.4-amd64

anonymous ()
Ответ на: комментарий от Meyer

Очень надеюсь, что дебиановцы все же удосужатся пошевелить задницами

пошевелить задницами

Странное у вас представление о работе программиста, сударь. Чтобы изменить код им нужно работать пальцами.

spacemanvitalusha ()
Ответ на: комментарий от anonymous

спасибо! думаю, учитывая однострочник было бы лучше использовать тег code для выхлопа.

reprimand ★★★★★ ()
Ответ на: комментарий от spacemanvitalusha

Чтобы пошевелить пальцами, нужно сначала пошевелить задницей, подняться с уютного кресла и дойти до компа.

Meyer ★★★ ()

в дебиан пришло обновление

cvs-255 ★★★★★ ()
Ответ на: комментарий от anonymous

С ужасом думаю о том, сколько таких дыр скрыто в самом линуксе.

Лучше думай о человеческой лени: людям, заинтересованным во всяческом слежении за пользователем, легче усираться пропагандируя закрытый софт, как это делаешь ты, чем скрывать бэкдоры в открытом.

Поставь себя на их место. Да, гипотетическая возможность что-то кудато-то воткнуть, - остается. Но как же надо извратиться, и постараться, чтобы что-то такое долго жило в коде без палева.

Меня лично этот случай радует, именно потому что тезис, который ты поставил под сомнение, как раз таки оправдал себя. Бутылка полуполная, а не полупустая.

Csandriel ()
Ответ на: комментарий от DeadEye

Сами закоммитили, сами обнаружили. Узнаю повадки мелкомягких.

LongLiveUbuntu ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.