(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 - это команда высококвалифицированных разработчиков, консультантов и экспертов, которые обладают большим практическим опытом, имеют профессиональные звания и сертификаты, являются членами международных организаций и активно участвуют в развитии отрасли.