-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

CVE-2019-6690: Improper Input Validation in python-gnupg
========================================================

We discovered a way to inject data through the passphrase property of
the gnupg.GPG.encrypt() and gnupg.GPG.decrypt() methods when symmetric
encryption is used.

The supplied passphrase is not validated for newlines, and the library
passes --passphrase-fd=0 to the gpg executable, which expects the
passphrase on the first line of stdin, and the ciphertext to be
decrypted or plaintext to be encrypted on subsequent lines.

By supplying a passphrase containing a newline an attacker can
control/modify the ciphertext/plaintext being decrypted/encrypted.

Vulnerable
- ----------
python-gnupg 0.4.3, and maybe earlier versions.

Mitigation
- ----------
Users should upgrade to 0.4.4.

Timeline
- --------
2019-01-19: Vulnerability discovered during Insomni’hack teaser 2019
2019-01-20: PoC created
2019-01-22: Applied for CVE, vendor notified
2019-01-23: CVE-2019-6690 assigned
2019-01-23: Vendor responded, fix committed
2019-01-24: Vendor released 0.4.4

References
- ----------
https://pypi.org/project/python-gnupg/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6690
https://blog.hackeriet.no/cve-2019-6690-python-gnupg-vulnerability/
https://github.com/hackeriet/CVE-2019-6690-python-gnupg-vulnerability
https://ctftime.org/task/7458

Proof of Concept
- ----------------
Hypothetical application using successful decryption of data to authenticate a
user, and a way to exploit it is available here:

https://blog.hackeriet.no/assets/CVE-2019-6690-python-gnupg-vulnerability.tgz
https://blog.hackeriet.no/assets/CVE-2019-6690-python-gnupg-vulnerability.tgz.sig

Credits
- -------
Vulnerability discovered by Alexander Kjäll and Stig Palmquist.

Thanks to @dewaelethom who wrote the CTF challenge.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEj7OMIAQn+GdSU5z5EMg4owYJR3UFAlxK3b4ACgkQEMg4owYJ
R3XWpQ/9Ex7/vIH6k6gFXk2SXTEK19g8D1zsopPsQaE/uzvAARJrdGe0mxAtlqWo
Z5C/4w+4B4ioLK8wphFiFglvwNN/qxeTOXR3z5RoVbNSvd4BQ1GQR23N+rqob12P
Q4TorKNPjgvlG28aP1O3gywX0vAPtD6N3UITuFgEkUg22jF5vrWns8iX8jPzXfE+
y8FzXnydFXgLJy9+BPIKQ+cNz/jK341WbMav2AUNTWxlbgDymyBNYuWVK7QarFM4
93svE4Pg91EdsLzHctNNwMUg43pQgpnGaw5bUFA4LtNMSElu66Qdr7ZK3ViHrbWB
qXEPcbD3el7R4TJxfxVpJtpplMCRF+xDDOBbEVN5i37Ma2WRWVGuhizcZUS7V4Af
RvDl38o6aIX3ZHRlxIb2pG0FpQDC4Dzh0GCsEinYZCmvLfAu4OzcD0V+GPLmR21L
CzfaGBZJlv5d3poDC/uo5Pi6QOo2I0A6sp3ap76CNpEp/jMzWOkwAvTaYNWnJ51A
WzJecxYcf3qXPW+olR8QWqLydz96WEdJFB8xF5gS354eWV3FpYcaedqZVSwJYpGD
XLZ0lxEa2PGZvcXJ7XZzs4jNwqaisFELto/GLDVxzRFx1U3oe86rTO4KF+IyYUB7
+bFayUfunzmX3QQYzHVj6KgUh19heb6DpFxDp7kWMKxFPJRr6q8=
=7ajV
-----END PGP SIGNATURE-----

Reply via email to