CVE-2025-61765
python-socketio vulnerabile a esecuzione arbitraria di codice Python (RCE) tramite deserializzazione pickle dannosa in determinate implementazioni multi-server
- Pubblicato
- 6 ott 2025
- Aggiornato
- 22 ott 2025
- Assegnazione CNA
- GitHub_M
- Evidenza osservata
- 8 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:LBasso · prossimi 30 giorni
- Percentile
- 40,1%
- Data del modello
- 15 ott 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
python-socketio è un'implementazione Python del client e server realtime Socket.IO. Una vulnerabilità di esecuzione remota di codice nelle versioni di python-socketio precedenti alla 5.14.0 consente agli attaccanti di eseguire codice Python arbitrario tramite una deserializzazione pickle dannosa in distribuzioni multi-server in cui l'attaccante ha precedentemente ottenuto accesso alla coda di messaggi che i server utilizzano per le comunicazioni interne. Quando i server Socket.IO sono configurati per utilizzare un backend a coda di messaggi come Redis per la comunicazione tra server, i messaggi inviati tra i server vengono codificati utilizzando il modulo Python `pickle`. Quando un server riceve uno di questi messaggi tramite la coda di messaggi, lo considera attendibile e lo deserializza immediatamente. La vulnerabilità deriva dalla deserializzazione dei messaggi tramite la funzione `pickle.loads()` di Python. Avendo precedentemente ottenuto accesso alla coda di messaggi, l'attaccante può inviare a un server python-socketio un payload pickle appositamente costruito che esegue codice arbitrario durante la deserializzazione tramite il metodo `__reduce__` di Python. Questa vulnerabilità riguarda solo distribuzioni con una coda di messaggi compromessa. L'attacco può portare l'attaccante a eseguire codice arbitrario nel contesto e con i privilegi del processo del server Socket.IO. I sistemi a server singolo che non utilizzano una coda di messaggi e i sistemi multi-server con una coda di messaggi sicura non sono vulnerabili. Oltre a garantire che vengano seguite le pratiche di sicurezza standard nella distribuzione della coda di messaggi, gli utenti del pacchetto python-socketio possono aggiornare alla versione 5.14.0 o successiva, che rimuove il modulo `pickle` e utilizza la codifica JSON molto più sicura per la messaggistica tra server.
Fonti
Prova di concetto di una vulnerabilità di deserializzazione pickle non sicura in Socket.IO
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.