Hello! We have to announce the availability of Libgcrypt version 1.9.1. This version fixes a *critical security bug* in the recently released version 1.9.0. If you are already using 1.9.0 please update immediately to 1.9.1.
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. Impact and timeline =================== Only one released version is affected: - Libgcrypt 1.9.0 (released 2021-01-19) All other versions are not affected. On 2021-01-28 Tavis Ormandy contacted us to report a severe bug in 1.9.0 which he found while testing GnuPG: There is a heap buffer overflow in libgcrypt due to an incorrect assumption in the block buffer management code. Just decrypting some data can overflow a heap buffer with attacker controlled data, no verification or signature is validated before the vulnerability occurs. The bug was introduced during the the 1.9 development phase about two years ago with commit e76617cbab018dd8f41fd6b4ec6740b5303f7e13 (Reduce overhead on generic hash write function). Exploiting this bug is simple and thus immediate action for 1.9.0 users is required. A CVE-id has not yet been assigned. We track this bug at https://dev.gnupg.org/T5275. The 1.9.0 tarballs on our FTP server have been renamed so that scripts won't be able to get this version anymore. Solution ======== If Libgcrypt versions 1.9.0 is in use please update immediately to version 1.9.1. If you are using the 1.8 LTS branch you are not affected. While you are checking anyway please make sure that you have at least 1.8.5. If you are using a development version build taken from our Git repository you need to update as well. NB: The use of non-released versions in a production environment is strongly discouraged. There is yet no released GnuPG version hich requires Libgcrypt 1.9 Noteworthy changes in Libgcrypt 1.9.1 ===================================== * Bug fixes: - *Fix exploitable bug* in hash functions introduced with 1.9.0. [#5275] - Return an error if a negative MPI is used with sexp scan functions. [#4964] - Check for operational FIPS in the random and KDF functions. [#5243] - Fix compile error on ARMv7 with NEON disabled. [#5251] - Fix self-test in KDF module. [#5254] - Improve assembler checks for better LTO support. [#5255] - Fix assember problem on macOS running on M1. [#5157] - Support older macOS without posix_spawn. [#5159] - Fix 32-bit cross build on x86. [#5257] - Fix non-NEON ARM assembly implementation for SHA512. [#5263] - Fix build problems with the cipher_bulk_ops_t typedef. [#5264] - Fix Ed25519 private key handling for preceding ZEROs. [#5267] - Fix overflow in modular inverse implementation. [#5269] - Fix register access for AVX/AVX2 implementations of Blake2. [#5271]. * Performance: - Add optimized cipher and hash functions for s390x/zSeries. - Use hardware bit counting functionx when available. * Internal changes: - The macOS getentropy syscall is used when available. [#5268] - Update DSA functions to match FIPS 186-3. [30ed9593f6] - New self-tests for CMACs and KDFs. [385a89e35b,7a0da24925] - Add bulk cipher functions for OFB and GCM modes. [f12b6788f2,f4e63e92dc] For a list of links to commits and bug numbers see the release info at https://dev.gnupg.org/T5259 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.9.1.tar.bz2 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.9.1.tar.bz2.sig or gzip compressed: https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.9.1.tar.gz https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.9.1.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.9.1.tar.bz2 you would use this command: gpg --verify libgcrypt-1.9.1.tar.bz2.sig libgcrypt-1.9.1.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.9.1.tar.bz2, you run the command like this: sha1sum libgcrypt-1.9.1.tar.bz2 and check that the output matches the first line from the this list: a15ce7355b028f28a33428eaa0147154861b29d4 libgcrypt-1.9.1.tar.bz2 f4440ce7893c3cf12f633ad4d3f91c77110a3a40 libgcrypt-1.9.1.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 if needed ask on the gcrypt-devel mailing list. In case of problems specific to this release please first check https://dev.gnupg.org/T5259 for updated information. Please also consult the archive of the gcrypt-devel mailing list before reporting a bug: https://gnupg.org/documentation/mailing-lists.html . We suggest to send bug reports for a new release to this list in favor of filing a bug at https://bugs.gnupg.org. If you need commercial support go to https://gnupg.com or https://gnupg.org/service.html . If you are a developer and you need a certain feature for your project, please do not hesitate to bring it to the gcrypt-devel mailing list for discussion. Thanks ====== Since 2001 maintenance and development of GnuPG is done by g10 Code GmbH and still mostly financed by donations. Three full-time employed developers as well as two contractors exclusively work on GnuPG and closely related software like Libgcrypt, GPGME, and Gpg4win. We like to thank all the nice people who are helping Libgcrypt, be it testing, coding, suggesting, auditing, administering the servers, spreading the word, or answering questions on the mailing lists. Many thanks to our numerous financial supporters, both corporate and individuals. Without you it would not be possible to keep GnuPG and Libgcrypt in a good and secure shape and to address all the small and larger requests made by our users. Thanks. Thanks to Tavis Ormandy for finding an reporting the bug. We are sorry for the trouble, Your Libgcrypt hackers p.s. This is an announcement only mailing list. Please send replies only to the gnupg-devel'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: ed25519 2020-08-24 [expires: 2030-06-30] Key fingerprint = 6DAA 6E64 A76D 2840 571B 4902 5288 97B8 2640 3ADA Werner Koch (dist signing 2020) 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) rsa2048 2011-01-12 [expires: 2021-12-31] Key fingerprint = D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6 Werner Koch (dist sig) 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. -- "If privacy is outlawed, only outlaws will have privacy." - PRZ 1991
signature.asc
Description: PGP signature
_______________________________________________ Gnupg-announce mailing list gnupg-annou...@gnupg.org http://lists.gnupg.org/mailman/listinfo/gnupg-announce
_______________________________________________ Gnupg-users mailing list Gnupg-users@gnupg.org http://lists.gnupg.org/mailman/listinfo/gnupg-users