
CVE-2025-1974 (IngressNightmare) का गहन तकनीकी विश्लेषण, Kubernetes के लिए ingress-nginx वैलिडेटिंग एडमिशन कंट्रोलर में एक गंभीर RCE, जिसमें मूल कारण, शोषण श्रृंखला, और पहचान मार्गदर्शन शामिल है।
यह दस्तावेज़ Kubernetes के लिए ingress-nginx घटक (validating admission controller) को प्रभावित करने वाली भेद्यता CVE-2025-1974 के शोध को प्रस्तुत करता है।
CVE-2025-1974 एक गंभीर भेद्यता (CVSS 3.1 9.8) है, जो ingress-nginx प्रक्रिया के संदर्भ में एक unauthenticated Remote Code Execution (RCE) है। हमले को अंजाम देते समय, एक हमलावर जिसके पास pod-नेटवर्क तक पहुँच है (या validating webhook तक AdmissionReview पहुँचाने का तरीका है), नियंत्रक के pod में मनमाना कोड निष्पादित कर सकता है, जो संभावित रूप से Secrets के प्रकटीकरण और क्लस्टर पर कब्ज़ा करने की ओर ले जाता है।
Ingress-nginx Kubernetes में सबसे व्यापक रूप से उपयोग किए जाने वाले Ingress नियंत्रकों में से एक है (अनुमानों के अनुसार दर्जनों प्रतिशत क्लस्टर इसका उपयोग करते हैं), इसलिए भेद्यता का व्यावहारिक प्रभाव बहुत अधिक है। विवरण, तकनीकी विश्लेषण और फिक्स के लिए आधिकारिक सिफारिशें Kubernetes, Wiz के शोधकर्ताओं और कई विक्रेता ब्लॉगों द्वारा प्रकाशित की गई हैं।
CVE-2025-1974 का चरण-दर-चरण विश्लेषण करना और write-up के लिए आवश्यक सामग्री तैयार करना:
यह शोध विशेष रूप से शैक्षिक और नैतिक उद्देश्यों के लिए किया गया है और केवल परीक्षण/नियंत्रित वातावरण के लिए अभिप्रेत है।
किसी भी परिस्थिति में मालिक की लिखित अनुमति के बिना दूसरों के क्लस्टर या सार्वजनिक रूप से सुलभ इंस्टेंस के विरुद्ध एक्सप्लॉइट/PoC चलाएँ। पूरी तरह कार्यात्मक "weaponized" PoC का खुले तौर पर प्रकाशन दुरुपयोग के जोखिम को बहुत बढ़ा देता है — सार्वजनिक भाग में safe-PoC और पद्धति प्रस्तुत करना बेहतर है। (आधिकारिक advisories और विक्रेता भी एक्सप्लॉइट के प्रसार में सावधानी पर जोर देते हैं)।
cpe:2.3:a:kubernetes:ingress-nginx_controller:<version> — ingress-nginx के भेद्य संस्करण (advisories में विशिष्ट संस्करण बताए गए हैं; अंतिम प्रकाशन के समय मान अपडेट करें)।कॉन्फ़िगरेशन शर्तें जिनमें भेद्यता लागू होती है:
संक्षिप्त सारांश।
भेद्यता Ingress-NGINX नियंत्रक के Validating Admission Controller घटक में पाई गई है और यह इस बात से संबंधित है कि यह घटक आने वाले Ingress / AdmissionReview के आधार पर अस्थायी NGINX कॉन्फ़िगरेशन कैसे बनाता और मान्य करता है। प्रक्रिया के दौरान, नियंत्रक nginx.conf उत्पन्न करता है और कॉन्फ़िगरेशन की जाँच (nginx -t) चलाता है। Ingress/AdmissionReview फ़ील्ड के अपर्याप्त निस्तारण के कारण, हमलावर विशेष रूप से तैयार टुकड़े डाल सकता है जो उत्पन्न कॉन्फ़िग में शामिल हो जाते हैं और परिणामस्वरूप नियंत्रक प्रक्रिया के अंदर कमांड निष्पादन की ओर ले जाते हैं — यानी ingress-nginx pod में दूरस्थ कोड निष्पादन (RCE)।
AdmissionReview/Ingress ऑब्जेक्ट NGINX कॉन्फ़िगरेशन (एनोटेशन फ़ील्ड, बैकएंड सेटिंग्स आदि सहित) उत्पन्न करने के लिए स्रोत डेटा बन जाते हैं।Ingress या प्रत्यक्ष AdmissionReview कॉन्फ़िगरेशन टेम्प्लेट/टुकड़ों में नियंत्रित स्ट्रिंग्स डाल सकता है। ऐसे nginx.conf की जाँच/लोड करने पर, सत्यापन प्रक्रिया (nginx -t) और कॉन्फ़िगरेशन फ़ाइल के साथ बाद की कार्रवाइयाँ नियंत्रक के संदर्भ में मनमाना कोड निष्पादन, फ़ाइलों को लिखना/चलाना या कमांड चलाने का कारण बन सकती हैं।AdmissionReview पहुँचाने की क्षमता (pod-नेटवर्क से पहुँच या प्रत्यक्ष नेटवर्क पहुँच); क्षतिपूर्ति उपायों का अभाव — NetworkPolicy, RBAC प्रतिबंध या अतिरिक्त webhook प्रमाणीकरण। कुछ परिदृश्यों में, Create/Update अधिकारों को दरकिनार करके सीधे webhook को crafted AdmissionReview भेजना संभव है।
सफल शोषण ingress-nginx कंटेनर में कोड निष्पादन देता है, जो आमतौर पर अनुमति देता है:
ingress-nginx-controller-admission और सेवा ingress-nginx-controller के लिए गैर-मानक स्रोतों (रिपोर्ट में — alpine जैसे कंटेनर) से आने वाले कनेक्शन दिखाई देते हैं, जो सामान्य संचालन में नहीं होना चाहिए।nginx -t कॉल और नियंत्रक का अचानक पुनरारंभ, साथ ही ingress-nginx प्रक्रिया से अप्रत्याशित फ़ाइल लेखन संचालन।Ingress-NGINX Kubernetes में सबसे व्यापक रूप से उपयोग किए जाने वाले Ingress नियंत्रकों में से एक है (सेवाओं तक बाहरी पहुँच व्यवस्थित करने के लिए व्यापक रूप से उपयोग किया जाता है)। नियंत्रक एक रिवर्स प्रॉक्सी के रूप में कार्य करता है: यह बाहरी ट्रैफ़िक प्राप्त करता है और Ingress नियमों के सेट के आधार पर इसे संबंधित Service/Pod को प्रॉक्सी करता है। Ingress-NGINX परियोजना बहुत लोकप्रिय है और इंटरनेट-सुलभ क्लस्टर में इसकी एक महत्वपूर्ण स्थापना हिस्सेदारी है।
Kubernetes दस्तावेज़ीकरण में Ingress-NGINX को Ingress नियंत्रक के एक संदर्भ उदाहरण के रूप में उद्धृत किया गया है। अनुमानों के अनुसार, खुले क्लस्टर का एक महत्वपूर्ण हिस्सा इसका उपयोग करता है; कुछ शोधों में संकेत दिया गया है कि लगभग 41% सार्वजनिक रूप से सुलभ क्लस्टर Ingress-NGINX का उपयोग करते हैं। इसकी व्यापक उपलब्धता और ट्रैफ़िक रूटिंग में केंद्रीय भूमिका के कारण ही इस घटक में भेद्यताओं का उच्च व्यावहारिक प्रभाव होता है।
validate.nginx.ingress.kubernetes.io) पर कॉल करने पर अतिरिक्त प्रमाणीकरण की आवश्यकता नहीं होती है। यह क्लस्टर के अंदर से इसे एक्सेस करना आसान बनाता है।Ingress / AdmissionReview बनाया जाता है, जहाँ कुछ फ़ील्ड में हानिकारक स्ट्रिंग्स होती हैं जिन्होंने उचित फ़िल्टरिंग पास नहीं की है।nginx.conf उत्पन्न करता है और nginx -t / अन्य सत्यापन संचालन करता है।ऐसी भेद्यताएँ विशेष रूप से खतरनाक होती हैं जब अन्य दोषों के साथ जुड़ती हैं: एक समझौता किया गया pod (या सार्वजनिक एप्लिकेशन में SSRF) + उजागर validating webhook पूर्ण हैक का उच्च मौका देता है। इसलिए, घटना विश्लेषण में निर्भरता श्रृंखला और संभावित वैक्टर पर विचार किया जाना चाहिए, न कि केवल ingress-nginx के संस्करण पर।