Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10356
  комментариев: 2242

Опубликованы детали критической уязвимости в MySQL и MariaDB


Представлена детальная информация об уязвимости, исправленной в недавно выпущенных обновлениях MariaDB 5.5.23/5.3.6/5.1.62/5.2.12 и MySQL 5.5.24/5.1.63/5.6.6 (все более ранние релизы подвержены проблеме). Уязвимость позволяет злоумышленнику осуществить аутентифицированный вход под любым пользователем без ввода корректного пароля.

Из-за ошибки в коде сравнения хэшей от паролей, переданный пароль мог быть признан эквивалентным эталонному даже при возврате ненулевого значения функцией memcmp(), используемой для сравнения. Вероятность подобного исхода составляет 1 из 256, т.е. злоумышленник может за примерно 300 попыток подключиться к СУБД, указав любое значение в качестве пароля. Эксплуатация проблемы может быть совершена любым клиентом, без необходимости модификации libmysqlclient. Суть проблемы сводится к тому, что функция проверки пароля в MySQL определена как "my_bool check_scramble(...)", но итоговый "return memcmp(...)" в данной функции не всегда возвращал данные в диапазоне -128..127, укладывающемся в тип my_bool, поэтому при определённом стечении обстоятельств возвращаемое memcmp ненулевое значение вне данного диапазона в результате приведения типов становилось нулём.

Положительным моментом является то, что не все сборки MySQL и MariaDB эксплуатируемы - очень многое зависит от того на какой платформе и как произведена сборка. Например, распространяемые разработчиками MySQL и MariaDB бинарные пакеты проблеме не подвержены. Предпосылкой к возникновению проблемы является возможность возвращения некоторыми реализациями memcmp() произвольных целых значений, не попадающих в диапазон -128..127. Например, реализации memcmp() из BSD libc и GCC не подвержены проблеме, а оптимизированная с использованием SSE-инструкций реализация memcmp() из Linux Glibc подвержена проблеме (GCC обычно использует собственную реализацию).

Дополнение: проверка версий MySQL поставляемых в дистрибутивах показала, что уязвимости подвержены пакеты для 64-разрядных выпусков Ubuntu Linux (с 10.04 по 12.04), OpenSuSE 12.1, Fedora 16 и Arch Linux. Не подвержены уязвимости официальные сборки с сайтов проектов, а также пакеты из состава Red Hat Enterprise Linux, CentOS, выпусков Ubuntu для 32-разрядных систем, Debian Linux (Squeeze, Lenny), Gentoo 64-bit.

Проверить наличие проблемы на своём сервере можно запустив приложение для оценки поведения memcmp или выполнив простой тест:

for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done


Источник: opennet.ru

  12 июня 2012 532
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 2 и 16*:            


Хостеры (2444)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)




Отправить сообщение администратору

Сумма чисел 21 и 6*:


Яндекс цитирования
сообщить о неточности