
Socket.IO में असुरक्षित pickle डिसीरियलाइज़ेशन भेद्यता का प्रूफ ऑफ कॉन्सेप्ट
python-socketio के 5.14.0 से पहले के संस्करणों में एक रिमोट कोड निष्पादन भेद्यता है, जो हमलावरों को मल्टी-सर्वर तैनातियों में दुर्भावनापूर्ण pickle डिसीरियलाइज़ेशन के माध्यम से मनमाना Python कोड निष्पादित करने की अनुमति देती है, जहाँ हमलावर ने पहले उस मैसेज कतार तक पहुँच प्राप्त कर ली है जिसका उपयोग सर्वर आंतरिक संचार के लिए करते हैं। आप इस भेद्यता का विस्तृत विश्लेषण GitHub Advisory में पा सकते हैं।
इस डेमो में तीन डॉकर कंटेनर शामिल हैं:
इन कंटेनरों को व्यवस्थित करने वाली एक docker-compose.yml फ़ाइल है। डेमो चलाने के लिए, docker-compose.yml फ़ाइल वाली निर्देशिका में निम्नलिखित कमांड निष्पादित करें:
docker-compose up --build
यह कमांड तीनों कंटेनरों को बनाएगा और प्रारंभ करेगा। Socket.IO सर्वर http://localhost:5000 पर उपलब्ध होगा, और हमलावर क्लाइंट प्रारंभ होने पर स्वचालित रूप से भेद्यता का शोषण करने का प्रयास करेगा। आप socketio_server कंटेनर में शोषण द्वारा बनाई गई किसी भी फ़ाइल के लिए evidence निर्देशिका की जाँच कर सकते हैं।