Werner Koch
2018-Jun-13 16:28 UTC
[Announce] Libgcrypt 1.8.3 and 1.7.10 to fix CVE-2018-0495
Hi! The GnuPG Project is pleased to announce the availability of Libgcrypt versions 1.8.3 and 1.7.10. These releases mitigate a novel side-channel attack on ECDSA signatures and also bring fixes for a few other bugs. Libgcrypt is a general purpose library of cryptographic building blocks. It is originally based on code used by GnuPG. It does not provide any implementation of OpenPGP or other protocols. Thorough understanding of applied cryptography is required to use Libgcrypt. Noteworthy changes in version 1.8.3 ================================== - Use blinding for ECDSA signing to mitigate a novel side-channel attack. [#4011,CVE-2018-0495] - Fix incorrect counter overflow handling for GCM when using an IV size other than 96 bit. [#3764] - Fix incorrect output of AES-keywrap mode for in-place encryption on some platforms. - Fix the gcry_mpi_ec_curve_point point validation function. - Fix rare assertion failure in gcry_prime_check. Release info at <https://dev.gnupg.org/T4016>. We also released a new version of the older 1.7 branch with similar fixes. Comments on the attack ===================== Details on CVE-2018-0495 can be found in the paper "Return of the Hidden Number Problem" which can be downloaded from the advisory page <https://www.nccgroup.trust/us/our-research/technical-advisory-return-of-the-hidden-number-problem/>. See <https://dev.gnupg.org/T4011> for a timeline. One user of Libgcrypt is GnuPG, thus a quick comment: GnuPG does not use the vulenrable ECDSA signatures by default. Further, it is much harder to mount such an attack against an offline protocol like OpenPGP than against online protocols like TLS. Anyway, we also released a new Windows installer for GnuPG 2.2.8 featuring the fixed Libgcrypt version. That installer is linked from the usual download page and a new Gpg4win version will be released soon. Download ======= Source code is hosted at the GnuPG FTP server and its mirrors as listed at <https://gnupg.org/download/mirrors.html>. On the primary server the source tarball and its digital signature are: https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.bz2 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.bz2.sig or gzip compressed: https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.gz https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.gz.sig The URLs for the older 1.7 branch are: https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.10.tar.bz2 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.10.tar.bz2.sig https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.10.tar.gz https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.10.tar.gz.sig In order to check that the version of Libgcrypt you downloaded is an original and unmodified file please follow the instructions found at <https://gnupg.org/download/integrity_check.html>. In short, you may use one of the following methods: - Check the supplied OpenPGP signature. For example to check the signature of the file libgcrypt-1.8.3.tar.bz2 you would use this command: gpg --verify libgcrypt-1.8.3.tar.bz2.sig libgcrypt-1.8.3.tar.bz2 This checks whether the signature file matches the source file. You should see a message indicating that the signature is good and made by one or more of the release signing keys. Make sure that this is a valid key, either by matching the shown fingerprint against a trustworthy list of valid release signing keys or by checking that the key has been signed by trustworthy other keys. See the end of this mail for information on the signing keys. - If you are not able to use an existing version of GnuPG, you have to verify the SHA-1 checksum. On Unix systems the command to do this is either "sha1sum" or "shasum". Assuming you downloaded the file libgcrypt-1.8.3.tar.bz2, you run the command like this: sha1sum libgcrypt-1.8.3.tar.bz2 and check that the output matches the first line from the this list: 13bd2ce69e59ab538e959911dfae80ea309636e3 libgcrypt-1.8.3.tar.bz2 3b4d23db99ef13e6e305f536f009d9de8f5d0535 libgcrypt-1.8.3.tar.gz 66902603f7b6ad62c72db868d93b1772ac2a1afa libgcrypt-1.7.10.tar.bz2 a0aaea0c514c62de8533a955631134bc57f2e552 libgcrypt-1.7.10.tar.gz You should also verify that the checksums above are authentic by matching them with copies of this announcement. Those copies can be found at other mailing lists, web sites, and search engines. Copying ====== Libgcrypt is distributed under the terms of the GNU Lesser General Public License (LGPLv2.1+). The helper programs as well as the documentation are distributed under the terms of the GNU General Public License (GPLv2+). The file LICENSES has notices about contributions that require that these additional notices are distributed. Support ====== For help on developing with Libgcrypt you should read the included manual and optional ask on the gcrypt-devel mailing list [1]. A listing with commercial support offers for Libgcrypt and related software is available at the GnuPG web site [2]. If you are a developer and you may need a certain feature for your project, please do not hesitate to bring it to the gcrypt-devel mailing list for discussion. Thanks ===== Maintenance and development of GnuPG is mostly financed by donations. The GnuPG project currently employs one full-time developer and two contractors. They all work exclusively on GnuPG and closely related software like Libgcrypt, GPGME, and GPA. We have to thank all the people who helped the GnuPG project, be it testing, coding, translating, suggesting, auditing, administering the servers, spreading the word, and answering questions on the mailing lists. Special thanks to Keegan Ryan of NCC Group for his proper handling of the disclosure. Many thanks to our numerous financial supporters, both corporate and individuals. Without you it would not be possible to keep GnuPG in a good shape and address all the small and larger requests made by our users. Thanks. Happy hacking, Your GnuPG hackers p.s. This is an announcement only mailing list. Please send replies only to the gnupg-users'at'gnupg.org mailing list. p.p.s List of Release Signing Keys: To guarantee that a downloaded GnuPG version has not been tampered by malicious entities we provide signature files for all tarballs and binary versions. The keys are also signed by the long term keys of their respective owners. Current releases are signed by one or more of these four keys: rsa2048 2011-01-12 [expires: 2019-12-31] Key fingerprint = D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6 Werner Koch (dist sig) rsa2048 2014-10-29 [expires: 2019-12-31] Key fingerprint = 46CC 7308 65BB 5C78 EBAB ADCF 0437 6F3E E085 6959 David Shaw (GnuPG Release Signing Key) <dshaw 'at' jabberwocky.com> rsa2048 2014-10-29 [expires: 2020-10-30] Key fingerprint = 031E C253 6E58 0D8E A286 A9F2 2071 B08A 33BD 3F06 NIIBE Yutaka (GnuPG Release Key) <gniibe 'at' fsij.org> rsa3072 2017-03-17 [expires: 2027-03-15] Key fingerprint = 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 Andre Heinecke (Release Signing Key) The keys are available at <https://gnupg.org/signature_key.html> and in any recently released GnuPG tarball in the file g10/distsigkey.gpg . Note that this mail has been signed by a different key. -- # Please read: Daniel Ellsberg - The Doomsday Machine # Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 227 bytes Desc: not available URL: <https://lists.gnupg.org/pipermail/gnupg-announce/attachments/20180613/d6ddc386/attachment.sig>