
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.
Autore: 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 file arbitrario non autenticato → Esecuzione di codice remoto |
| Stato | Corretto da VMware (nov 2020 – feb 2021). Il laboratorio ha utilizzato versioni volutamente obsolete e isolate esclusivamente 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 avviso CVE alla comprensione effettiva della superficie d'attacco, della catena di sfruttamento e — altrettanto importante — di come avrebbe dovuto essere prevenuta e come rilevarla a livello difensivo.
La vulnerabilità risiede nel vSphere Client (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 una richiesta
POST appositamente predisposta a questo endpoint e caricare file arbitrari — inclusa una web shell — in una
directory accessibile via web sul sistema operativo sottostante. Questo garantisce all'attaccante l'esecuzione di codice con
i privilegi del servizio vCenter, di fatto il controllo completo dell'appliance.
A livello generale, la catena d'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 resoconto pubblico.)
La presenza della vulnerabilità può essere confermata a livello difensivo (cioè da un blue team o da un auditor) verificando se l'endpoint di caricamento del target risponde in modo coerente con la vulnerabilità non corretta — questo è lo stesso tipo di controllo che uno scanner di vulnerabilità o un team di sicurezza interno eseguirebbe per identificare istanze vCenter esposte e non corrette sulla propria rete prima che lo faccia un attaccante.
Uno script di rilevamento NSE pubblico di Nmap per questa CVE è disponibile in diversi repository di sicurezza open-source; non viene riprodotto qui, in coerenza con l'obiettivo di questo README di documentazione piuttosto che di distribuzione di strumenti di scansione/sfruttamento pronti all'uso. Nel laboratorio, un target vulnerabile è stato segnalato come VULNERABLE (Exploitable) nell'output della scansione, che è il trigger per dare priorità alla correzione immediata.
Una proof-of-concept funzionante per questa CVE è pubblicamente disponibile dal 2021, in seguito alla sua scoperta da parte di Mikhail Klyuchnikov di Positive Technologies; nell'interesse di non distribuire un payload RCE pronto all'esecuzione da questo profilo, non riproduco qui il codice di sfruttamento — l'obiettivo di questo resoconto è la comprensione, non lo strumento. In sintesi, lo sfruttamento pubblico automatizza i passaggi 2–3 sopra: impacchetta una JSP web shell nel formato di caricamento previsto, la invia tramite POST all'endpoint vulnerabile, conferma che sia stata depositata in un percorso accessibile via web, e quindi la utilizza per attivare una reverse shell verso l'attaccante.
Questo progetto è stato condotto in un ambiente di laboratorio completamente isolato e non di produzione a scopi educativi e di sviluppo professionale. Nessun sistema non autorizzato è stato accesso.