
Socket.IO의 안전하지 않은 pickle 역직렬화 취약점에 대한 PoC
python-socketio 5.14.0 이전 버전의 원격 코드 실행 취약점으로 인해, 공격자가 서버 내부 통신에 사용되는 메시지 큐에 사전에 접근 권한을 획득한 다중 서버 배포 환경에서 악성 pickle 역직렬화를 통해 임의의 Python 코드를 실행할 수 있습니다. 이 취약점에 대한 자세한 분석은 GitHub Advisory에서 확인할 수 있습니다.
이 데모에는 세 개의 docker 컨테이너가 포함됩니다:
이 컨테이너들을 오케스트레이션하는 docker-compose.yml 파일이 있습니다. 데모를 실행하려면 docker-compose.yml 파일이 있는 디렉터리에서 다음 명령을 실행하세요:
docker-compose up --build
이 명령은 세 컨테이너를 모두 빌드하고 시작합니다. Socket.IO 서버는 http://localhost:5000에서 접근할 수 있으며, 공격자 클라이언트는 시작 시 자동으로 취약점 악용을 시도합니다. socketio_server 컨테이너에서 익스플로잇에 의해 생성된 파일이 있는지 evidence 디렉터리를 확인할 수 있습니다.