Directus: GraphQL एलियास एम्प्लीफिकेशन के माध्यम से प्रमाणीकरणहीन इनकार-ए-सेवा (Unauthenticated Denial of Service) महंगा स्वास्थ्य जांच रिज़ॉल्वर (Health Check Resolver) के कारण
प्लेटफ़ॉर्म
nodejs
कॉम्पोनेन्ट
directus
ठीक किया गया
11.17.0
## सारांश GraphQL विनिर्देश (specification) अनुमति देता है कि एक ही क्वेरी में एलियास का उपयोग करके एक ही फ़ील्ड को कई बार दोहराया जा सकता है, जिसमें प्रत्येक एलियास डिफ़ॉल्ट रूप से स्वतंत्र रूप से हल किया जाता है। Directus ने एक ही अनुरोध के भीतर रिज़ॉल्वर इनवोकेशन को डीडुप्लिकेट (deduplicate) नहीं किया, जिसका अर्थ है कि प्रत्येक एलियास अंतर्निहित रिज़ॉल्वर के पूर्ण, स्वतंत्र निष्पादन को ट्रिगर करता है। स्वास्थ्य जांच रिज़ॉल्वर प्रत्येक इनवोकेशन पर सभी बैकएंड जांच (डेटाबेस कनेक्टिविटी, कैश, स्टोरेज राइट्स और SMTP सत्यापन) चलाता है। प्रमाणीकरणहीन पहुंच के साथ सिस्टम GraphQL एंडपॉइंट (endpoint) के साथ मिलकर, यह एक ही HTTP अनुरोध से संसाधन खपत को काफी हद तक बढ़ा सकता है, डेटाबेस कनेक्शन पूल, स्टोरेज I/O और SMTP कनेक्शन को समाप्त कर सकता है। ## समाधान एक अनुरोध-स्कोप (request-scoped) रिज़ॉल्वर डीडुप्लिकेशन तंत्र (deduplication mechanism) पेश किया गया था और इसे सिस्टम और आइटम एंडपॉइंट दोनों के लिए सभी GraphQL रीड रिज़ॉल्वर में व्यापक रूप से लागू किया गया था। जब एक ही अनुरोध में कई एलियास समान रिज़ॉल्वर को समान तर्कों के साथ इनवोक (invoke) करते हैं, तो केवल पहली कॉल निष्पादित होती है; सभी बाद के एलियास इसके परिणाम को साझा करते हैं। यह एम्प्लीफिकेशन कारक को समाप्त करता है, चाहे हमलावर क्वेरी में कितने भी एलियास शामिल करे। ## प्रभाव - **सेवा का ह्रास या आउटेज (outage):** डेटाबेस
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें