Starlette के URL पुनर्निर्माण के तर्क से रूट किए गए पथ और प्रमाणित किए गए पथ के बीच एक खतरनाक बेमेल पैदा हो जाता है। जब कोई HTTP अनुरोध आता है, तो राउटर सही ढंग से लक्ष्य एंडपॉइंट की पहचान कर लेता है। लेकिन जब एप्लिकेशन यह जांचने के लिए request.url की जांच करता है कि उपयोगकर्ता अधिकृत है या नहीं, तो Starlette Host हेडर और अनुरोध पथ को जोड़कर और परिणाम को दोबारा पार्स करके उस URL का पुनर्निर्माण करता है ।
एक हमलावर इसका फायदा उठाने के लिए किसी सुरक्षित एंडपॉइंट जैसे /admin/secure पर एक सावधानी से जहरीला किया गया Host हेडर भेज सकता है, उदाहरण के लिए:
Host: legitimate.com/health?x=
राउटर इस अनुरोध को सही तरीके से /admin/secure हैंडलर तक भेज देता है—लेकिन जब प्रमाणीकरण मिडलवेयर request.url.path की जांच करता है, तो उसे /health दिखाई देता है। अगर मिडलवेयर एक अनुमति-सूची का उपयोग करता है जो /health को एक सार्वजनिक हेल्थ-चेक एंडपॉइंट के रूप में भरोसा करती है, तो हमलावर आसानी से अंदर घुस जाता है। प्रमाणीकरण जांच चुपचाप बायपास हो जाती है—न कोई टोकन, न कोई पासवर्ड, न किसी उपयोगकर्ता की बातचीत की जरूरत ।
X41 D-Sec की सलाह इसकी चौंका देने वाली सादगी की पुष्टि करती है: "HTTP Host हेडर में बस एक ही अक्षर डालना सर्वर को चकमा देने के लिए पर्याप्त है" । भ्रम पैदा करने वाले विशिष्ट अक्षरों में फॉरवर्ड स्लैश, प्रश्न चिह्न और हैश प्रतीक शामिल हैं—ये मानक URL डीलिमीटर हैं जिन्हें Starlette ने कभी मान्य नहीं किया
।
इस भेद्यता की पहुंच बहुत बड़ी है। Starlette लगभग हर बड़े Python-आधारित AI सर्विंग और ऑर्केस्ट्रेशन टूल का छिपा हुआ इंजन है, जिसे हर हफ्ते लगभग 32.5 करोड़ बार डाउनलोड किया जाता है । वर्जन 1.0.1 से पहले के Starlette का उपभोग करने वाली सभी डाउनस्ट्रीम परियोजनाएं प्रभावित हैं:
पुष्टि किए गए प्रभावित संस्करण Starlette >= 0.8.3 से < 1.0.1 तक फैले हुए हैं, जिसका मतलब है कि वर्षों से स्थिर रिलीज चलाने वाले सिस्टम भी संभावित रूप से असुरक्षित हैं ।
CVE-2026-48710 के लिए आधिकारिक गंभीरता रेटिंग ने सुरक्षा समुदाय के भीतर महत्वपूर्ण असहमति पैदा कर दी है:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N गोपनीयता और अखंडता पर प्रभाव को "कम" मानता है, दायरे को "अपरिवर्तित" तक सीमित करता है, और उपलब्धता पर कोई प्रभाव नहीं बताता है CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:Nतीन कारक शोधकर्ताओं के इस तर्क को रेखांकित करते हैं कि 6.5 खतरनाक रूप से कम है:
SC:H/SI:H मेट्रिक्स अंततः पकड़ते हैं 26 मई, 2026 को जारी Starlette संस्करण 1.0.1 में निश्चित पैच शामिल है। इस समाधान को GitHub सुरक्षा सलाह GHSA-86qp-5c8j-p5mr और X41 सलाह X41-2026-002 में ट्रैक किया गया है ।
पैच दो मुख्य सुरक्षा उपाय लागू करता है:
Host हेडर को अब request.url के निर्माण में उपयोग करने से पहले RFC 9112 §3.2 और RFC 3986 §3.2.2 में निर्दिष्ट व्याकरण के अनुसार मान्य किया जाता है scope["server"]—वास्तविक सर्वर कनेक्शन टपल—पर वापस आ जाता है। परिणामस्वरूप, request.url.path लगातार वास्तविक रूट किए गए पथ को दर्शाता है FastAPI परियोजना ने पुष्टि की है कि यह समाधान प्रभावी है और तुरंत starlette को >=1.0.1 में अपग्रेड करने की अनुशंसा की है ।
Starlette पैकेज को अपग्रेड करना आवश्यक पहला कदम है, लेकिन एक व्यापक बचाव के लिए कई परतों की आवश्यकता होती है:
तुरंत पैच करें। AI इंफ्रास्ट्रक्चर चलाने वाले हर वर्चुअल वातावरण, कंटेनर इमेज और परिनियोजन पाइपलाइन में यह कमांड निष्पादित करें:
pip install --upgrade starlette
सभी प्रभावित सेवाओं को पुनः आरंभ करें। यह सीधे Starlette इंस्टॉलेशन के साथ-साथ FastAPI, vLLM, LiteLLM और MCP सर्वर इंस्टेंस पर भी लागू होता है ।
निर्भरताओं का ऑडिट और पिन करें। FastAPI और अन्य फ्रेमवर्क स्वचालित रूप से Starlette न्यूनतम संस्करण लागू नहीं कर सकते हैं। requirements.txt, pyproject.toml, poetry.lock, या समकक्ष लॉक फाइलों में starlette>=1.0.1 को स्पष्ट रूप से आवश्यक करें। पुराने इंस्टॉलेशन की पहचान करने के लिए सभी वातावरणों में pip list | grep starlette।
AI स्टैक के हर घटक को स्कैन करें। कोई भी Python सेवा जो HTTP प्रदान करती है—कस्टम FastAPI ऐप्स, LLM इन्फ्रेंस एंडपॉइंट्स, एजेंट ऑर्केस्ट्रेशन प्लेन, मॉडल इवैल्यूएशन पैनल और OpenAI-संगत प्रॉक्सी—एक असुरक्षित Starlette संस्करण एम्बेड कर सकती है। पूर्ण बुनियादी ढांचे का ऑडिट करें ।
रिवर्स प्रॉक्सी और WAF को सख्त करें। nginx, Envoy, HAProxy, Cloudflare, या AWS ALB को Python एप्लिकेशन पर ट्रैफ़िक अग्रेषित करने से पहले खराब Host हेडर को अस्वीकार या साफ करने के लिए कॉन्फ़िगर करें। यह गहराई से बचाव प्रदान करता है जो एप्लिकेशन पैचिंग में देरी होने पर भी शोषण को रोकता है ।
पथ-सुरक्षा जांच को request.url.path से दूर ले जाएं। मूल कारण रूटिंग पथ और request.url.path के बीच का बेमेल था। जहां भी संभव हो, प्रमाणीकरण मिडलवेयर को request.scope["path"] का उपयोग करने के लिए स्विच करें, जो कच्चे ASGI स्कोप से प्राप्त होता है और Host हेडर द्वारा जहरीला नहीं किया जा सकता है । X41 D-Sec एंडपॉइंट-आंतरिक प्रमाणीकरण तंत्र के पक्ष में पथ-आधारित प्रमाणीकरण से पूरी तरह बचने की सिफारिश करता है
।
एक्सपोजर के लिए परीक्षण करें। संगठनों को यह सत्यापित करने में मदद करने के लिए एक ऑनलाइन स्कैनर जारी किया गया है कि उनके सर्वर असुरक्षित हैं या नहीं । प्रमाणीकरण सीमाओं के खिलाफ गहन प्रवेश परीक्षण के साथ संयुक्त, यह अनदेखी की गई हमले की सतहों को प्रकट कर सकता है।
डेबियन-आधारित परिनियोजन के लिए, CVE-2026-48710 को डेबियन सुरक्षा ट्रैकर में "महत्वपूर्ण" की गंभीरता के साथ ट्रैक किया गया है, और प्रभावित सुइट्स के लिए संबंधित पैच किए गए starlette पॉइंट रिलीज़ उपलब्ध हैं । bullseye-security या समकक्ष रिपॉजिटरी से सुधारात्मक
apt लेन-देन लागू करें, और प्रभावित systemd यूनिट फाइलों को पुनः लोड करें ।
Comments
0 comments