
Proof of Concept einer unsicheren Pickle-Deserialisierungs-Schwachstelle in Socket.IO
Eine Schwachstelle zur Remote-Code-Ausführung in python-socketio-Versionen vor 5.14.0 ermöglicht es Angreifern, beliebigen Python-Code durch bösartige Pickle-Deserialisierung in Multi-Server-Bereitstellungen auszuführen, bei denen der Angreifer zuvor Zugriff auf die Nachrichtenwarteschlange erlangt hat, die die Server für die interne Kommunikation verwenden. Eine detaillierte Analyse dieser Schwachstelle finden Sie im GitHub Advisory.
An dieser Demo sind drei Docker-Container beteiligt:
Es gibt eine docker-compose.yml-Datei, die diese Container orchestriert. Um die Demo auszuführen, führen Sie den folgenden Befehl in dem Verzeichnis aus, das die docker-compose.yml-Datei enthält:
docker-compose up --build
Dieser Befehl erstellt und startet alle drei Container. Der Socket.IO-Server ist unter http://localhost:5000 erreichbar, und der Angreifer-Client versucht automatisch beim Start, die Schwachstelle auszunutzen. Sie können das -Verzeichnis auf Dateien überprüfen, die durch den Exploit im socketio_server-Container erstellt wurden.
evidence