(PT-2012-29) Positive Technologies Security Advisory
Получение привилегий администратора в Simple Machines Forum
Уязвимое ПО
Simple Machines Forum
Версия: 2.0.3; 1.1.17 и более ранняя
Ссылка:
http://www.simplemachines.org/
Рейтинг опасности
Уровень опасности: Высокий
Воздействие: Получение привилегий администратора
Вектор атаки: Удаленный
CVSS v2:
Base Score: 10
Vector: (AV:N/AC:L/Au:N/C:C/I:C/A:C)
CVE: отсутствует
Описание программы
Simple Machines Forum (краткое название — SMF) – это свободно распространяемое профессиональное программное обеспечение, которое позволяет за считанные минуты создать собственное online-сообщество.
Описание уязвимости
Специалисты Исследовательского центра Positive Research компании Positive Technologies обнаружили уязвимость «Получение привилегий администратора» в Simple Machines Forum.
Уязвимость, обнаруженная в механизме восстановления пароля, позволяет атакующему с помощью специальных запросов получить пароль администратора.
Уязвимость в файле: Sources/Reminder.php:
Уязвимый фрагмент кода:
if (empty($_POST['code']) || substr($realCode, 0, 10) != substr(md5($_POST['code']), 0, 10))
При запросе восстановления пароля на email пользователя отправляется 10-символьный код, содержащий символы из набора 0-9 a-f. С помощью данного кода осуществляется смена пароля, причем пользователь может задать новый пароль самостоятельно через специальную форму.
Приведенный выше фрагмент кода некорректно осуществляет сравнение кода для восстановления пароля, находящегося в базе данных, и кода, указанного пользователем. Дело в том, что PHP в случае, когда с помощью оператора "==" сравниваются число со строкой или две строки, содержащие числа, преобразует каждую строку в число, а затем сравнивает полученные числа.
Таким образом, строка вида "0e12345678", где "e" - символ показателя степени, эквивалентна "0", а "1e12345678" - "1". Атакующий имеет возможность последовательно отправлять запросы на восстановление пароля до тех пор, пока код в базе данных не примет вид "0e", либо "1e", за которым следуют любые числа. Наши исследования показали, что в среднем требуется около 5 тысяч запросов на восстановление пароля и 10 тысяч – на проверку кода, что осуществимо менее чем за час.
Начиная с версии 2.0 Beta 4, в Simple Machines Forum присутствует код, затрудняющий атаку путем ограничения частоты запросов на сброс пароля. Однако данная мера не является эффективной, так как в этом случае необходимое количество запросов для подбора нужного формата кода достигается за несколько часов. Этому также способствует тот факт, что код ограничения частоты запросов на сброс пароля содержит ошибку:
if (empty($number_tries) || $time_stamp < (time() - 10))
{
// If it wasn't *that* long ago, don't give them another five goes.
$number_tries = !empty($number_tries) && $time_stamp < (time() - 20) ? 2 : 0;
$time_stamp = time();
}
Решение
Установите последнюю версию приложения.
Статус уведомления
23.08.2012 - Производитель уведомлен
23.08.2012 - Производителю отправлены детали уязвимости
01.02.2013 - Производитель выпустил исправление
15.02.2013 - Публикация уязвимости
Благодарности
Уязвимость обнаружил Арсений Реутов (Исследовательcкий центр Positive Research компании Positive Technologies)
Ссылки
http://www.securitylab.ru/lab/PT-2012-29
Список отчетов о ранее обнаруженных уязвимостях 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 - это команда высококвалифицированных разработчиков, консультантов и экспертов, которые обладают большим практическим опытом, имеют профессиональные звания и сертификаты, являются членами международных организаций и активно участвуют в развитии отрасли.