
Prova de Conceito de uma vulnerabilidade de desserialização insegura de pickle no Socket.IO
Uma vulnerabilidade de execução remota de código no python-socketio versões anteriores a 5.14.0 permite que atacantes executem código Python arbitrário por meio de desserialização maliciosa de pickle em implantações multisservidor nas quais o atacante obteve acesso anteriormente à fila de mensagens que os servidores usam para comunicações internas. Você pode encontrar uma análise detalhada desta vulnerabilidade no Aviso do GitHub.
Há três contêineres Docker envolvidos nesta demo:
Há um arquivo docker-compose.yml que orquestra esses contêineres. Para executar a demo, execute o seguinte comando no diretório que contém o arquivo docker-compose.yml:
docker-compose up --build
Este comando irá construir e iniciar todos os três contêineres. O servidor Socket.IO estará acessível em http://localhost:5000, e o cliente atacante tentará automaticamente explorar a vulnerabilidade ao iniciar. Você pode verificar o diretório em busca de quaisquer arquivos criados pelo exploit no contêiner socketio_server.
evidence