`dsaVerify` में browserify-sign अपर बाउंड चेक समस्या से हस्ताक्षर जालसाजी हमला होता है
प्लेटफ़ॉर्म
nodejs
कॉम्पोनेन्ट
browserify-sign
ठीक किया गया
4.2.2
### सारांश `dsaVerify` फ़ंक्शन में एक अपर बाउंड चेक समस्या हमलावर को ऐसे हस्ताक्षर बनाने की अनुमति देती है जिन्हें किसी भी सार्वजनिक कुंजी द्वारा सफलतापूर्वक सत्यापित किया जा सकता है, जिससे हस्ताक्षर जालसाजी हमला होता है। ### विवरण `dsaVerify` फ़ंक्शन में, यह फ़ंक्शन `checkValue` को कॉल करके जाँचता है कि हस्ताक्षर का मान कानूनी है या नहीं, अर्थात्, क्या `r` और `s` दोनों अंतराल `[1, q - 1]` में हैं। हालाँकि, `checkValue` फ़ंक्शन की दूसरी पंक्ति गलत तरीके से पारित मापदंडों की ऊपरी सीमा की जाँच करती है, क्योंकि `b.cmp(q)` का मान केवल `0`, `1` और `-1` हो सकता है, और यह कभी भी `q` से अधिक नहीं हो सकता है। इस तरह, हालाँकि `s` के मान `0` नहीं हो सकते हैं, एक हमलावर इसके मान को `q` पर सेट करके शून्य के समान प्रभाव प्राप्त कर सकता है, और फिर किसी भी सार्वजनिक कुंजी के सत्यापन को पारित करने के लिए `(r, s) = (1, q)` भेज सकता है। ### प्रभाव इस परियोजना में वे सभी स्थान जिनमें उपयोगकर्ता-इनपुट हस्ताक्षरों के DSA सत्यापन शामिल हैं, इस भेद्यता से प्रभावित होंगे। ### फिक्स पीआर: चूंकि अस्थायी निजी फोर्क हटा दिया गया था, इसलिए यहां पीआर चर्चा और डिफ पृष्ठों का एक वेबआर्काइव है: [PR webarchive.zip](https://github.com/browserify/browserify-sign/files/13172957/PR.webarchive.zip)
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें