
Kubernetes NGINX Ingress नियंत्रकों में एनोटेशन इंजेक्शन भेद्यता का पता लगाने में मदद करने के लिए एक न्यूनतम परीक्षण उपकरण। यह स्क्रिप्ट CVE-2025-1974 से संभावित शोषण पथ का अनुकरण करने के लिए एक तैयार AdmissionReview अनुरोध भेजती है और नियंत्रक लॉग में गलत व्याख्या किए गए एनोटेशन के संकेतों की जाँच करती है।
यह स्क्रिप्ट NGINX इनग्रेस कंट्रोलर का उपयोग करके Kubernetes क्लस्टर में एनोटेशन इंजेक्शन कमजोरियों का परीक्षण करती है। यह केवल CVE-2025-1974 के संबंध में पहचान उद्देश्यों के लिए है, जो दुर्भावनापूर्ण एनोटेशन को NGINX कॉन्फ़िगरेशन को प्रभावित करने की अनुमति देता है।
Wiz.io (ब्लॉग पोस्ट) द्वारा खुलासा की गई इस कमजोरी में ऐसे एनोटेशन इंजेक्ट करना शामिल है जिन्हें कंट्रोलर द्वारा अनुचित रूप से संभाला जाता है। उदाहरण के लिए:
nginx.ingress.kubernetes.io/auth-url: "http://placeholder/#; error_log /root/this_path_shouldnt_exist.log debug; #"
यदि इसे संसाधित किया जाता है, तो इससे अप्रत्याशित NGINX कॉन्फ़िगरेशन व्यवहार और अनुमति त्रुटियाँ हो सकती हैं। अधिक उन्नत परिदृश्यों में, इस प्रकार के इंजेक्शन को अन्य गलत कॉन्फ़िगरेशन के साथ जोड़कर रिमोट कोड निष्पादन (RCE) प्राप्त किया जा सकता है।
AdmissionReview पेलोड लोड करता है।/validate एंडपॉइंट पर भेजता है।admission_review.yaml: इसमें तैयार AdmissionReview अनुरोध है।main.py: कंट्रोलर को पेलोड भेजता है।पहले, एडमिशन कंट्रोलर पोर्ट को आगे बढ़ाएँ:
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller-admission 8443:443
फिर चलाएँ:
python main.py --url https://localhost:8443
इनग्रेस कंट्रोलर लॉग जाँचें:
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller
आप देख सकते हैं:
nginx: [emerg] open() "/root/this_path_shouldnt_exist.log" failed (13: Permission denied)
यह इंगित करता है कि एनोटेशन को एक निर्देश के रूप में अनुचित रूप से निष्पादित किया गया था।
केवल शैक्षिक और अधिकृत परीक्षण के लिए। बिना अनुमति के सिस्टम पर न चलाएँ।
इस उपकरण का उपयोग यह सत्यापित करने के लिए करें कि आपका क्लस्टर NGINX इनग्रेस के माध्यम से एनोटेशन इंजेक्शन के लिए असुरक्षित है या नहीं। इस कमजोरी का शोषण रिमोट कोड निष्पादन की ओर ले जाने वाली व्यापक हमला श्रृंखला का हिस्सा हो सकता है।