
सीवीई-2025-9074 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट - अनप्रमाणित डॉकर एपीआई एक्सपोज़र जो मनमाना कंटेनर निर्माण और होस्ट फाइलसिस्टम एक्सेस की अनुमति देता है।
यह रिपॉजिटरी CVE-2025-9074 के लिए एक Proof-of-Concept (PoC) एक्सप्लॉइट प्रदान करती है, जिसमें TCP पोर्ट 2375 पर Docker Engine API का बिना प्रमाणीकरण एक्सपोज़र शामिल है।
एक हमलावर जो इस एक्सपोज़्ड API तक पहुंच सकता है वह:
यह PoC केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए जारी किया गया है।
सिस्टम का अनधिकृत शोषण अवैध और अनैतिक है।
इस PoC का उपयोग केवल उन वातावरणों पर करें जिनके आप स्वामी हैं या जिनके परीक्षण की स्पष्ट अनुमति है।
2375requests लाइब्रेरीनिर्भरताएँ इंस्टॉल करें:
pip install requests
यदि आप इस PoC का परीक्षण अपनी स्थानीय मशीन पर कर रहे हैं, तो सुनिश्चित करें कि Docker API TLS के बिना TCP पर एक्सपोज़्ड है। Docker Desktop पर, इन चरणों का पालन करें:
⚠️ चेतावनी: यह विकल्प Docker API पर प्रमाणीकरण अक्षम कर देता है।
कोई भी स्थानीय या रिमोट हमलावर जो localhost:2375 तक पहुंच सकता है, आपके Docker डेमॉन को नियंत्रित कर सकता है।
इसे केवल अलग-थलग परीक्षण वातावरण में सक्षम करें — कभी भी प्रोडक्शन में नहीं।
एक बार सक्षम करने के बाद, आप इसके साथ सत्यापित कर सकते हैं:
curl http://127.0.0.1:2375/info
यदि API "ServerVersion" वाले JSON के साथ प्रतिक्रिया करता है, तो डेमॉन सही ढंग से एक्सपोज़्ड है।
# Clone this repository
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# Run the PoC
python3 poc_cve_2025_9074.py <target_ip>:2375
यदि कोई टार्गेट प्रदान नहीं किया गया है, तो स्क्रिप्ट इनपुट के लिए संकेत देगी और डिफ़ॉल्ट रूप से 127.0.0.1:2375 का उपयोग करेगी।
API उपलब्धता जांचें
पुष्टि करता है कि Docker API /info पर प्रतिक्रिया देता है या नहीं।
alpine इमेज खींचें
सुनिश्चित करता है कि आवश्यक बेस इमेज उपलब्ध है।
दुर्भावनापूर्ण कंटेनर पेलोड तैयार करें
होस्ट फाइलसिस्टम को /mnt पर बाइंड-माउंट करके एक कंटेनर बनाता है।
कंटेनर बनाएं कंटेनर निर्माण अनुरोध भेजता है।
कंटेनर शुरू करें कंटेनर शुरू हो जाता है, जो होस्ट फाइलसिस्टम तक पहुंच प्रदान करता है।
पोस्ट-एक्सप्लॉइटेशन उदाहरण:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS को अक्षम करें।PoC स्क्रिप्ट शोध के दौरान Gemini AI के साथ सह-विकसित की गई।
यह PoC MIT License के तहत जारी किया गया है।