
AES-CFB IV जनरेशन भेद्यता Reolink डेस्कटॉप एप्लिकेशन में
Reolink डेस्कटॉप एप्लिकेशन (संस्करण 8.18.12) कॉन्फ़िगरेशन फ़ाइलों और अन्य संवेदनशील डेटा को एन्क्रिप्ट करने के लिए AES-CFB एल्गोरिदम का उपयोग करता है।
हालाँकि, इस प्रक्रिया में उपयोग किया जाने वाला इनिशियलाइज़ेशन वेक्टर (IV) अनुचित तरीके से संभाला जाता है, जिससे एक भेद्यता उत्पन्न होती है जिसमें एन्क्रिप्टेड कॉन्फ़िगरेशन डेटा को एक हमलावर द्वारा आसानी से डिक्रिप्ट किया जा सकता है।
निम्नलिखित कोड दर्शाता है कि IV रनटाइम पर गतिशील रूप से उत्पन्न होता है:
{
key: "fetchAesIv",
value: function () {
return window.napiDecrypt.getAesIv();
},
}
हालाँकि, लौटाया गया मान हमेशा एक ही स्ट्रिंग होता है: bcswebapp1234567।
इसका अर्थ है कि यद्यपि IV तकनीकी रूप से रनटाइम पर उत्पन्न होता है, यह प्रभावी रूप से हार्डकोडेड है, जो कोई अतिरिक्त सुरक्षा प्रदान नहीं करता है।
जब एप्लिकेशन चल रहा होता है, तो IV मान को DevTools जावास्क्रिप्ट कंसोल के माध्यम से गतिशील रूप से प्राप्त किया जा सकता है।
window.napiDecrypt.getAesIv() फ़ंक्शन एक Promise लौटाता है जो एक स्थिर स्ट्रिंग bcswebapp1234567 में हल होता है।

यह दर्शाता है कि IV सभी एन्क्रिप्शन ऑपरेशनों में पुनः उपयोग किया जाता है, जो क्रिप्टोग्राफ़िक सर्वोत्तम प्रथाओं का उल्लंघन करता है।
CFB, CBC, और OFB जैसे ब्लॉक साइफर मोड में, IV का पुनः उपयोग एक हमलावर को साइफरटेक्स्ट पैटर्न की भविष्यवाणी करने की अनुमति दे सकता है, जो अंततः डेटा गोपनीयता से समझौता करता है। IV के उद्देश्य को पूरा करने के लिए, एक नया, अप्रत्याशित मान गतिशील रूप से उत्पन्न किया जाना चाहिए।