PT-2013-02: Предугадывание ключа сброса пароля администратора в FluxBB Уязвимое ПОFluxBB Версия: 1.5.2 и более ранняяСсылка: http://fluxbb.org/Рейтинг опасностиУровень опасности: высокий Воздействие: предугадывание ключа сброса пароля администратора Вектор атаки: удаленныйCVSS v2: Base Score: 9.3 Vector: (AV:N/AC:M/Au:N/C:C/I:C/A:C) CVE: отсутствуетОписание программыFluxBB — один из самых быстрых и лёгких форумов с открытым исходным кодом, написан на PHP.Описание уязвимостиСпециалисты компании Positive Technologies обнаружили уязвимость "Предугадывание ключа сброса пароля администратора " в FluxBB.Уязвимость обнаружена в алгоритме генерации случайных ключей для сброса паролей пользователей. FluxBB генерирует предугадываемые псевдослучайные числа, используя функцию mt_rand:function random_key($len, $readable = false, $hash = false) /* ... */ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; for ($i = 0; $i < $len; ++$i) $key .= substr($chars, (mt_rand() % strlen($chars)), 1);FluxBB также допускает утечку вывода mt_rand через параметр "search_id": $search_id = mt_rand(1, 2147483647);После запроса на восстановление пароля FluxBB генерирует ключ сброса пароля и новый пароль следующим образом:// Generate a new password and a new password activation code $new_password = random_pass(8); $new_password_key = random_pass(8);Для предугадывания данных значений злоумышленнику необходимо отправить большое количество keep-alive запросов, после чего веб-сервер начнет создавать новые процессы с вновь инициализрованным состоянием генератора Mersenne Twister. Затем ему необходимо совершить два keep-alive запроса:GET /search.php?action=search&keywords=test&search=Search POST /login.php?action=forget_2 form_sent=1&req_email=admin%40email.comПервый запрос вернет параметр "search_id" в URL перенаправления, в котором содержится вывод mt_rand. Так как в keep-alive соединении состояние ГПСЧ сохраняется, используя это число, можно подобрать сид, с помощью которого имеется возможность предугадать ключ для сброса пароля, а также новый пароль.РешениеУстановите последнюю версию приложения.Статус уведомления 17.01.2013 - Производителю отправлены детали уязвимости 22.02.2013 - Производитель выпустил исправление 07.03.2013 - Публикация уязвимости БлагодарностиУязвимость обнаружил Арсений Реутов (Исследовательcкий центр Positive Research компании Positive Technologies)Ссылкиhttp://www.securitylab.ru/lab/PT-2013-02Список отчетов о ранее обнаруженных уязвимостях Positive Research:http://www.ptsecurity.ru/lab/advisory/ http://www.securitylab.ru/lab/