Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

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

CouchDB написана на языке Erlang, но позволяет указывать сценарии проверки документов в Javascript. Эти сценарии автоматически оцениваются при создании или обновлении документа. CouchDB управляет учетными записями пользователей через специальную базу данных — _users.

Когда вы создаете или изменяете пользователя в базе данных CouchDB, сервер проверяет изменение с помощью функции Javascript validate_doc_update, чтобы удостовериться, что это не попытка сделать себя администратором, например.

«Проблема в том, что существует расхождение между JSON-парсером Javascript (используемым в скриптах проверки) и тем, что используется внутри CouchDB, называемым jiffy», — пишет эксперт, обнаруживший брешь.

Далее специалист привод куски кода для демонстрации этой разницы:

Erlang:

> jiffy:decode("{\"foo\":\"bar\", \"foo\":\"baz\"}"). 
{[{<<"foo">>,<<"bar">>},{<<"foo">>,<<"baz">>}]}

Javascript:

> JSON.parse("{\"foo\":\"bar\", \"foo\": \"baz\"}")
{foo: "baz"}

Для данного ключа парсер Erlang сохранит оба значения, а вот Javascript-парсер сохранит только последнее, что позволит обойти все соответствующие проверки ввода и создать пользователя с правами администратора.

Исследователь указывает на то, что использовать несколько парсеров для обработки одних и тех же данных не очень правильно. Он предлагает сделать все возможное, чтобы не было никаких функциональных различий между парсерами, если есть необходимость использовать несколько.

Игроки Minecraft могут стать участниками DDoS-атаки через плагин скинов

Обычная попытка поиграть на пиратских серверах Minecraft неожиданно закончилась исследованием потенциальной уязвимости. Пользователь Хабра под ником Fir3wall1 рассказал, что во время анализа популярного плагина Skins Restorer обнаружил механизм, который теоретически может использоваться для организации распределенных атак на сторонние сайты.

Плагин Skins Restorer широко применяется на пиратских серверах для смены внешнего вида персонажей.

Исследователь обратил внимание, что при загрузке скина игровой клиент самостоятельно обращается по указанному адресу, а сервер лишь передает ссылку, практически не проверяя ее содержимое.

 

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

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

Автор подчеркивает, что речь не идет об угрозе для крупных интернет-компаний с развитой инфраструктурой и средствами защиты. Однако небольшие сайты и сервисы без CDN, WAF и других механизмов фильтрации могут оказаться более уязвимыми.

По мнению исследователя, проблема связана не столько с самим Minecraft, сколько с архитектурными особенностями плагина, который не ограничивает адреса, к которым могут обращаться игровые клиенты при загрузке скинов.

Если выводы автора подтвердятся, это станет еще одним примером того, как безобидная игровая функция может неожиданно превратиться в инструмент для злоупотреблений. При этом сама публикация служит напоминанием разработчикам плагинов: даже вспомогательные механизмы требуют тщательной проверки с точки зрения безопасности.

RSS: Новости на портале Anti-Malware.ru