PT-2013-02: Предугадывание ключа сброса пароля администратора в FluxBB

(PT-2013-02) Positive Technologies Security Advisory
Предугадывание ключа сброса пароля администратора в 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/

О Positive Technologies

Positive Technologies www.ptsecurity.ru - одна из ведущих российских компаний в области информационной безопасности. 
Основные направления деятельности компании - разработка систем комплексного мониторинга информационной безопасности (XSpider, MaxPatrol); предоставление консалтинговых и сервисных услуг в области информационной безопасности; развитие специализированного портала Securitylab.ru.

Заказчиками Positive Technologies являются более 40 государственных учреждений, более 50 банков и финансовых структур, 20 телекоммуникационных компаний, более 40 промышленных предприятий, компании ИТ-индустрии, сервисные и ритейловые компании России, стран СНГ, Балтии, а также Великобритании, Германии, Голландии, Израиля, Ирана, Китая, Мексики, США, Таиланда, Турции, Эквадора, ЮАР, Японии.

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