
CVE-2019-6690 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो python-gnupg सममित एन्क्रिप्शन में पासफ्रेज़ में newline injection के माध्यम से इनपुट वैलिडेशन बाईपास प्रदर्शित करता है।
हमने gnupg.GPG.encrypt() और gnupg.GPG.decrypt() विधियों के passphrase गुण के माध्यम से डेटा इंजेक्ट करने का एक तरीका खोजा है, जब सममित एन्क्रिप्शन का उपयोग किया जाता है।
प्रदान किया गया पासफ़्रेज़ नई पंक्तियों के लिए मान्य नहीं किया जाता है, और लाइब्रेरी --passphrase-fd=0 को gpg निष्पादन योग्य में पास करती है, जो stdin की पहली पंक्ति पर पासफ़्रेज़ की अपेक्षा करती है, और बाद की पंक्तियों पर डिक्रिप्ट किए जाने वाले सिफरटेक्स्ट या एन्क्रिप्ट किए जाने वाले प्लेनटेक्स्ट की अपेक्षा करती है।
एक नई पंक्ति वाला पासफ़्रेज़ प्रदान करके, एक हमलावर डिक्रिप्ट/एन्क्रिप्ट किए जा रहे सिफरटेक्स्ट/प्लेनटेक्स्ट को नियंत्रित/संशोधित कर सकता है।
python-gnupg 0.4.3, और संभवतः पहले के संस्करण
उपयोगकर्ताओं को 0.4.4 में अपग्रेड करना चाहिए
एक काल्पनिक एप्लिकेशन जो किसी उपयोगकर्ता को प्रमाणित करने के लिए डेटा के सफल डिक्रिप्शन का उपयोग करता है, और इसका शोषण करने का एक तरीका यहाँ उपलब्ध है:
https://github.com/hackeriet/CVE-2019-6690-python-gnupg-vulnerability
Debian: apt install libmojolicious-perl python3-gnupg python3-flask
Nix: nix-shell
./server.py
./exploit.pl
भेद्यता की खोज Alexander Kjäll और Stig Palmquist ने की।
remmer को धन्यवाद।