Jun. 12th, 2012

42 года назад вышел мультфильм, в котором Украинские Казаки играют с таким же набором команд и в той же последовательности, как и в группе D. Вероятность такого совпадения всего 0.04%!.


Первая игра Рыцари (Шведы)–Казаки 1:2
Вторая игра Казаки–Мушкетеры (Франция) 1:1
Третья игра Остров (Англия)–Казаки 3:13

dl // 12.06.12 11:48
Некорректное приведение типов в процедуре проверки паролей ряда сборок MySQL и MariaDB приводит к тому, что с вероятностью 1/256 удается выполнить подключение, используя любой пароль - достаточно знать имя пользователя (ну а root-то там обычно бывает). Затронуты версии вплоть до 5.1.61, 5.2.11, 5.3.5, 5.5.22. Разумеется, во многих конфигурациях MySQL закрыт для всех коннектов снаружи, но так бывает далеко не всегда. Ну и героический брутфорс на 256 попыток открывает все двери менее чем за секунду.

Уязвимые версии собраны с использованием функции memcmp из оптимизированной под SSE линуксовой glibc. Встроенная memcmp из gcc незатронута, как и memcmp из BSDшной libc.

В пересчете на реальные операционные системы, затронуты 64-битные Ubuntu версий 10.04, 10.10, 11.04, 11.10, и12.04, Fedora и OpenSUSE 12.1. Чисты Debian, Gentoo и RHEL, равно как и официальные сборки MySQL и MariaDB. Быстрое сканирование 1.74 миллиона доступных MySQL-серверов показало, что уязвимы практически 50 процентов. Звучит довольно апокалиптично - просто представьте, что половина всех доступных MySQL-серверов прямо сейчас стоит с настежь открытой дверью.

Источник проблемы - возврат функцией целочисленного значения за границами диапазона -127..128. Вообще, возвращаемым значением функции memcmp является целое число, про которое можно лишь утверждать, что оно меньше, больше, либо равно нулю в зависимости от результата сравнения переданных ей блоков памяти. Судя по всему, разработчики понадеялись на то, что возвратом будут строго -1/0/1, в то время как оптимизированная реализация просто возвращает первый ненулевой результат операции вычитания, последовательно проводимой над соответствующими символами проверяемых блоков. А он вполне может достичь 255 - имеет полное на то право, раз функция описана как возвращающая int.

Источник: The Register
Page generated Aug. 9th, 2025 02:31 pm
Powered by Dreamwidth Studios