Handlebars.js में AST टाइप भ्रम के माध्यम से जावास्क्रिप्ट इंजेक्शन (JavaScript Injection) है
प्लेटफ़ॉर्म
nodejs
कॉम्पोनेन्ट
handlebars
ठीक किया गया
4.7.9
Handlebars उपयोगकर्ताओं को सिमेंटिक टेम्पलेट बनाने की आवश्यक शक्ति प्रदान करता है। संस्करण 4.0.0 से 4.7.8 तक, `Handlebars.compile()` एक टेम्पलेट स्ट्रिंग के अतिरिक्त एक पूर्व-पार्स किए गए AST ऑब्जेक्ट को स्वीकार करता है। `NumberLiteral` AST नोड का `value` फ़ील्ड बिना उद्धरण या सैनिटाइजेशन के सीधे उत्पन्न जावास्क्रिप्ट (JavaScript) में उत्सर्जित होता है। एक हमलावर जो `compile()` को एक तैयार किया गया AST प्रदान कर सकता है, इसलिए मनमाना जावास्क्रिप्ट (JavaScript) इंजेक्ट और निष्पादित कर सकता है, जिससे सर्वर पर रिमोट कोड निष्पादन (Remote Code Execution) हो सकता है। संस्करण 4.7.9 इस समस्या को ठीक करता है। कुछ समाधान उपलब्ध हैं। `Handlebars.compile()` को कॉल करने से पहले इनपुट प्रकार को मान्य करें; सुनिश्चित करें कि तर्क हमेशा एक `string` है, कभी भी एक सादा ऑब्जेक्ट या JSON-डीसेरियलाइज्ड मान नहीं। यदि टेम्पलेट बिल्ड टाइम पर पहले से संकलित हैं तो सर्वर पर Handlebars रनटाइम-ओनली बिल्ड (`handlebars/runtime`) का उपयोग करें; `compile()` अनुपलब्ध होगा।
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें