
Resoconto di ricerca in laboratorio isolato per VMware vCenter Server CVE-2021-21972, che copre il caricamento arbitrario di file non autenticato fino a RCE, il rilevamento basato su Nmap, la catena di sfruttamento e le mitigazioni.
Author: Niranjan Pokhrel
Progetto di ricerca indipendente che riproduce e documenta una vulnerabilità critica e pubblicamente divulgata di VMware vCenter Server in un laboratorio domestico isolato, per comprendere la classe di vulnerabilità, il percorso di sfruttamento e le mitigazioni difensive.
| CVE | CVE-2021-21972 |
| Punteggio Base CVSSv3 | 9.8 (Critico) |
| Avviso del fornitore | VMSA-2021-0002 |
| Prodotto interessato | VMware vCenter Server 6.5 / 6.7 / 7.0 |
| Classe di vulnerabilità | Caricamento arbitrario di file non autenticato → Esecuzione di codice remoto |
| Stato | Corretto da VMware (nov 2020 – feb 2021). Il laboratorio ha utilizzato versioni volutamente obsolete e isolate solo a scopo di ricerca. |
vCenter Server è il piano di gestione centrale per l'infrastruttura virtualizzata VMware: comprometterlo può significare compromettere un intero data center virtuale. Questa vulnerabilità è un esempio da manuale di come un controllo di autenticazione mancante su un singolo endpoint di un plugin possa degenerare nella compromissione totale dell'host. Ho costruito questo laboratorio per passare dalla lettura di un advisory CVE alla comprensione effettiva della superficie d'attacco, della catena di sfruttamento e — altrettanto importante — di come avrebbe dovuto essere prevenuta e come rilevarla dal punto di vista difensivo.
La vulnerabilità risiede nel client vSphere (HTML5), in particolare in un plugin di vCenter Server che espone un endpoint di caricamento file (/ui/vropspluginui/rest/services/uploadova) senza richiedere autenticazione. Un attaccante con accesso di rete alla porta 443 può inviare a questo endpoint una richiesta POST appositamente modificata e caricare file arbitrari — inclusa una web shell — in una directory accessibile via web sul sistema operativo sottostante. Questo consente all'attaccante l'esecuzione di codice con i privilegi del servizio vCenter, ovvero il controllo praticamente totale dell'appliance.
A livello generale, la catena di attacco è:
Costruito interamente in una rete virtuale isolata, non esposta a internet e senza dati di produzione:
(Indirizzi IP specifici, credenziali e dettagli infrastrutturali della configurazione originale sono volutamente omessi da questo documento pubblico.)
La presenza della vulnerabilità può essere confermata in ottica difensiva (ad esempio da un blue team o da un auditor) utilizzando uno script NSE pubblico di Nmap che verifica se l'endpoint di caricamento del target risponde in modo coerente con la vulnerabilità non corretta — è lo stesso tipo di controllo che uno scanner di vulnerabilità o un team di sicurezza interno eseguirebbe per identificare istanze vCenter esposte e non aggiornate sulla propria rete prima che lo faccia un attaccante.
nmap -p443 --script CVE-2021-21972.nse <target-ip>
Un target vulnerabile viene segnalato come VULNERABLE (Exploitable) nell'output della scansione, ed è il segnale per dare priorità al patch immediato.
Un exploit proof-of-concept funzionante per questa CVE è pubblicamente disponibile dal 2021 (pubblicato originariamente dal ricercatore di sicurezza chacka0101, collegato in Riferimenti). Nell'interesse di non distribuire da questo profilo un payload RCE pronto all'uso, non riproduco qui il codice dell'exploit — lo scopo di questo documento è la comprensione, non lo strumento. In sintesi, l'exploit pubblico automatizza i passaggi 2–3 sopra: impacchetta una web shell JSP nel formato di caricamento previsto, la invia tramite POST all'endpoint vulnerabile, conferma che sia arrivata in un percorso accessibile via web e la usa per attivare una reverse shell verso l'attaccante.
Questo progetto è stato condotto in un ambiente di laboratorio completamente isolato e non di produzione a scopo educativo e di sviluppo professionale. Non è stato acceduto a sistemi non autorizzati.