
प्रूफ-ऑफ-कॉन्सेप्ट जो Traefik के Kubernetes गेटवे प्रदाता (CVE-2026-54761) में एक crossProviderNamespaces भेद्यता के माध्यम से प्राधिकरण बाइपास को प्रदर्शित करता है, जो api@internal जैसी आंतरिक सेवाओं को उजागर करता है।
यह रिपॉज़िटरी, Traefik के Kubernetes Gateway provider में मौजूद एक उच्च-गंभीरता वाली कमज़ोरी CVE-2026-54761 को स्थानीय वातावरण में पुनरुत्पादित करने के लिए एक Proof of Concept (PoC) है।
यह कमज़ोरी crossProviderNamespaces की अनुमति सूची को प्रभावित करती है। एकाधिक भारित बैकएंड संदर्भों को घोषित करने वाले HTTPRoute नियमों में, Traefik रूट के स्वयं के namespace के बजाय संदर्भित backendRef.namespace के विरुद्ध अनुमति सूची की जाँच करता है। इसके परिणामस्वरूप, भले ही HTTPRoute एक अननुमतित namespace में हो, यदि बैकएंड संदर्भ एक अनुमतित namespace की ओर इशारा करता है और संबंधित Gateway API ReferenceGrant मौजूद है, तो api@internal जैसी Traefik आंतरिक सेवाएँ उजागर हो सकती हैं।
रिपोर्टकर्ता: saku0512 (https://github.com/Saku0512), vvvvvvvvvvel (https://github.com/vvvvvvvvvvel)
यह परियोजना केवल शैक्षिक उद्देश्यों और अनुमत सुरक्षा परीक्षणों के लिए है।
जिन सिस्टमों के आप स्वामी या प्रबंधक नहीं हैं, उन पर इस PoC को न चलाएँ। यह PoC एक डिस्पोज़ेबल स्थानीय kind क्लस्टर बनाने और पृथक वातावरण में समस्या प्रदर्शित करने के लिए डिज़ाइन किया गया है।
api@internal जैसी Traefik आंतरिक सेवाएँ सामान्य डेटा प्लेन के माध्यम से उजागर हो सकती हैंcrossProviderNamespaces विकल्प Gateway API रूट namespace को प्रतिबंधित करने के लिए है, जो @internal सेवाओं के संदर्भ सहित TraefikService बैकएंड संदर्भ घोषित कर सकते हैं।
कमज़ोर भारित बैकएंड प्रसंस्करण पथ में, Traefik backendRef.namespace के विरुद्ध अनुमति सूची की जाँच करता है। हालाँकि, सुरक्षा सीमा HTTPRoute का namespace है जिसमें संदर्भ घोषित किया गया है, अतः यह सत्यापन लक्ष्य गलत है।
अपेक्षित व्यवहार:
providers:
kubernetesGateway:
crossProviderNamespaces:
- trusted
केवल वे रूट जिनका स्वयं का namespace trusted है, क्रॉस-प्रोवाइडर TraefikService बैकएंड संदर्भ घोषित करने में सक्षम होने चाहिए।
कमज़ोर व्यवहार:
backendRefs:
- group: traefik.io
kind: TraefikService
name: api@internal
namespace: trusted
यदि रूट में एकाधिक बैकएंड संदर्भ हैं और backendRef.namespace अनुमतित trusted namespace पर सेट है, तो attacker namespace में स्थित HTTPRoute स्वीकार किया जा सकता है।
यह PoC निम्नलिखित विन्यास के साथ एक डिस्पोज़ेबल स्थानीय kind क्लस्टर बनाता है।
providers.kubernetesGateway.crossProviderNamespaces=trustedtrusted से सामान्य Gateway API ReferenceGrantcd external-repro-kind
./run-kind-repro.sh
स्क्रिप्ट समाप्ति पर स्वचालित रूप से क्लस्टर हटा देगी।
मैन्युअल जाँच के लिए क्लस्टर रखने हेतु:
KEEP_CLUSTER=1 ./run-kind-repro.sh
नियंत्रण रूट, attacker namespace से एकल निषिद्ध api@internal बैकएंड संदर्भ का उपयोग करता है। इस स्थिति में API उजागर नहीं होनी चाहिए।
control status: 404
एक्सप्लॉइट रूट दो बैकएंड संदर्भों का उपयोग करता है, जिससे Traefik को एक भारित सेवा बनाने के लिए प्रेरित किया जाता है। कमज़ोर संस्करण में, /api/http/services पर अनुरोध Traefik API का JSON लौटाता है।
exploit returned Traefik API JSON
api@internal status: enabled
weighted members:
api@internal 1000000
attacker-whoami-http-80 1
महत्वपूर्ण बात यह है कि दोनों रूट एक ही अविश्वसनीय `attacker` namespace से बनाए गए हैं। एकल बैकएंड नियंत्रण अस्वीकार कर दिया जाता है, लेकिन मिश्रित भारित बैकएंड रूट सफलतापूर्वक हल हो जाता है और `api@internal` को उजागर करता है।
---
## फ़ाइलें
- `external-repro-kind/kind-config.yaml` - Traefik को `127.0.0.1:18080` पर उजागर करने वाला स्थानीय kind क्लस्टर विन्यास
- `external-repro-kind/traefik-v371.yaml` - कमज़ोर Traefik की तैनाती और GatewayClass
- `external-repro-kind/gateway-exploit.yaml` - namespace, Gateway, ReferenceGrant, नियंत्रण रूट, बाइपास रूट
- `external-repro-kind/run-kind-repro.sh` - स्थानीय एंड-टू-एंड पुनरुत्पादन स्क्रिप्ट
---
## उपाय
Traefik को सुधारित संस्करण में अपग्रेड करें।
- v3.6 श्रृंखला में v3.6.21 या बाद का
- v3.7 श्रृंखला में v3.7.5 या बाद का
प्रशासकों को मौजूदा Gateway API `ReferenceGrant` संसाधनों की भी जाँच करनी चाहिए। जब तक स्पष्ट रूप से अभिप्रेत प्रत्यायोजन न हो, अविश्वसनीय namespace को क्रॉस-प्रोवाइडर `TraefikService` संदर्भों तक पहुँच की अनुमति न दें।
---
## संदर्भ जानकारी
- [Traefik Security Advisory GHSA-3g6v-2r68-prfc](https://github.com/traefik/traefik/security/advisories/GHSA-3g6v-2r68-prfc)
- [Traefik v3.6.21 release](https://github.com/traefik/traefik/releases/tag/v3.6.21)
- [Traefik v3.7.5 release](https://github.com/traefik/traefik/releases/tag/v3.7.5)