Mailing List Archive

[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.