
اكتشفنا طريقة لحقن البيانات عبر خاصية عبارة المرور الخاصة بالطريقتين
gnupg.GPG.encrypt() و gnupg.GPG.decrypt() عند استخدام التشفير المتماثل.
لا يتم التحقق من عبارة المرور المُقدَّمة لخلوّها من أسطر جديدة، وتمرّر المكتبة
--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.