
Prova di concetto di una vulnerabilità di deserializzazione pickle non sicura in Socket.IO
Una vulnerabilità di esecuzione remota di codice in python-socketio nelle versioni precedenti alla 5.14.0 consente agli aggressori di eseguire codice Python arbitrario tramite deserializzazione malevola di pickle in distribuzioni multi-server in cui l'aggressore ha precedentemente ottenuto accesso alla coda di messaggi che i server utilizzano per le comunicazioni interne. Puoi trovare un'analisi dettagliata di questa vulnerabilità nel GitHub Advisory.
Ci sono tre contenitori Docker coinvolti in questa demo:
C'è un file docker-compose.yml che orchestra questi contenitori. Per eseguire la demo, esegui il seguente comando nella directory che contiene il file docker-compose.yml:
docker-compose up --build
Questo comando creerà e avvierà tutti e tre i contenitori. Il server Socket.IO sarà accessibile all'indirizzo http://localhost:5000 e il client attaccante tenterà automaticamente di sfruttare la vulnerabilità all'avvio. Puoi controllare la directory per eventuali file creati dallo sfruttamento nel contenitore socketio_server.
evidence