В сети появилась новая уязвимость — рассказываем, как она выглядит и где ее искать.
Описание
Любой пользователь может выполнить произвольное удаленное выполнение кода (RCE) через запрос к SolrSearch. Уязвимы версии 5.3-milestone-2 по 15.10.11 и с версии 16.0.0-rc-1 до 16.4.1
Метрики
Base Score: 9.8
CWE-95
Настоятельно рекомендуем обновиться ❗️
Подробности атаки
Были обнаружены несколько PoC exploit на данную уязвимость. Уязвимой конечной точкой является /xwiki/bin/get/Main/SolrSearch, при значении параметра media равным rss. Сама полезная нагрузка передается в GET или POST параметре text и со значением параметра media равным rss.
Пример нагрузки
```}}}{{async async=false}}{{groovy}}CODE{{/groovy}}{{/async}}```Детали
— Количество закрытых фигурных скобок в начале может быть любым, их может и не быть.
—
{{async async=false}} — попытка отключить асинхронное выполнение макросов.—
{{groovy}} — открывает блок макроса Groovy, который позволяет выполнить Groovy-код на сервере. Могут использоваться и другие виды скриптов, например, python.—
CODE — произвольный код. Вместо CODE располагается RCE код, bash команды могут предаваться внутри, например, new ProcessBuilder.— Блок кода в CODE может быть не один, их может быть множество, они будут перечислены через точку с запятой:
….{{groovy}}CODE1; CODE2; CODE3{{/groovy….
Рекомендации по детекту
Ловить эту атаку сможет правило, которое:
1️⃣проверяет, что запросы идут на
/xwiki/bin/get/Main/SolrSearch;2️⃣ проверяет, что параметр
media равен rss;3️⃣ Проверяет, что параметр
text содержит открытие блока макроса {{groovy}},{{python}},{{javascript}} и т.д.Подробнее ознакомиться со всеми языками, которые поддерживает xwiki, можно в документации.