|
|
Subscribe / Log in / New account

GnuPG 2.2.23 released, fixing a critical security flaw

GNU Privacy Guard (GnuPG or GPG) has released version 2.2.23 to fix a critical security bug affecting GnuPG 2.2.21 and 2.2.22, as well as Gpg4win 3.1.12. "Importing an OpenPGP key having a preference list for AEAD algorithms will lead to an array overflow and thus often to a crash or other undefined behaviour. Importing an arbitrary key can often easily be triggered by an attacker and thus triggering this bug. Exploiting the bug aside from crashes is not trivial but likely possible for a dedicated attacker. The major hurdle for an attacker is that only every second byte is under their control with every first byte having a fixed value of 0x04. Software distribution verification should not be affected by this bug because such a system uses a curated list of keys."


From:  Werner Koch <wk-AT-gnupg.org>
To:  gnupg-announce-AT-gnupg.org, info-gnu-AT-gnu.org
Subject:  [security fix] GnuPG 2.2.23 released
Date:  Thu, 03 Sep 2020 18:44:35 +0200
Message-ID:  <87h7seyfm4.fsf@wheatstone.g10code.de>

Hello!

We are pleased to announce the availability of a new GnuPG release:
version 2.2.23.  This version fixes a *critical security bug* in
versions 2.2.21 and 2.2.22.


Impact
======

These versions are affected:

 - GnuPG 2.2.21   (released 2020-07-09)
 - GnuPG 2.2.22   (released 2020-08-27)
 - Gpg4win 3.1.12 (released 2020-07-24)

All other versions are not affected.

Importing an OpenPGP key having a preference list for AEAD algorithms
will lead to an array overflow and thus often to a crash or other
undefined behaviour.

Importing an arbitrary key can often easily be triggered by an attacker
and thus triggering this bug.  Exploiting the bug aside from crashes is
not trivial but likely possible for a dedicated attacker.  The major
hurdle for an attacker is that only every second byte is under their
control with every first byte having a fixed value of 0x04.

Software distribution verification should not be affected by this bug
because such a system uses a curated list of keys.

A CVE-id has not yet been assigned.  We track this bug at
https://dev.gnupg.org/T5050


Solution
========

If GnuPG version 2.2.21 or 2.2.22 is in use please update ASAP to
version 2.2.23.

If you are using an older version or a beta of version 2.3 no immediate
action is required.

If you are using Gpg4win 3.1.12 or GnuPG VS-Desktop 3.1.12 you may
either wait for a fixed release which we will provide very soon or
install GnuPG version 2.2.23 on top.

If installation of a new version is not possible, applying the patch
https://dev.gnupg.org/rGaeb8272ca8aad403a4baac33b8d567371...
is also sufficient.


About GnuPG
===========

The GNU Privacy Guard (GnuPG, GPG) is a complete and free implementation
of the OpenPGP and S/MIME standards.

GnuPG allows to encrypt and sign data and communication, features a
versatile key management system as well as access modules for public key
directories.  GnuPG itself is a command line tool with features for easy
integration with other applications.  The separate library GPGME provides
a uniform API to use the GnuPG engine by software written in common
programming languages.  A wealth of frontend applications and libraries
making use of GnuPG are available.  As an universal crypto engine GnuPG
provides support for S/MIME and Secure Shell in addition to OpenPGP.

GnuPG is Free Software (meaning that it respects your freedom).  It can
be freely used, modified and distributed under the terms of the GNU
General Public License.


Noteworthy changes in version 2.2.23
====================================

  * gpg: Fix AEAD preference list overflow.  [#5050]

  * gpg: Fix a possible segv in the key cleaning code.

  * gpgsm: Fix a minor RFC2253 parser bug.  [#5037]

  * scdaemon: Fix a PIN verify failure on certain OpenPGP card
    implementations.  Regression in 2.2.22.  [#5039]

  * po: Fix bug in the Hungarian translation.  Updates for the Czech,
    Polish, and Ukrainian translations.

  Release-info: https://dev.gnupg.org/T5045


Getting the Software
====================

Please follow the instructions found at <https://gnupg.org/download/> or
read on:

GnuPG 2.2.23 may be downloaded from one of the GnuPG mirror sites or
direct from its primary FTP server.  The list of mirrors can be found at
<https://gnupg.org/download/mirrors.html>.  Note that GnuPG is not
available at ftp.gnu.org.

The GnuPG source code compressed using BZIP2 and its OpenPGP signature
are available here:

 https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.23.tar.bz2 (6933k)
 https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.23.tar.bz2.sig

An installer for Windows without any graphical frontend except for a
very minimal Pinentry tool is available here:

 https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.2.23_2020... (4187k)
 https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.2.23_2020...

The source used to build the Windows installer can be found in the same
directory with a ".tar.xz" suffix.

A new version of the GnuPG Desktop for Windows (aka Gpg4win) featuring
this version of GnuPG will be released shortly.


Checking the Integrity
======================

In order to check that the version of GnuPG which you are going to
install is an original and unmodified one, you can do it in one of
the following ways:

 * If you already have a version of GnuPG installed, you can simply
   verify the supplied signature.  For example to verify the signature
   of the file gnupg-2.2.23.tar.bz2 you would use this command:

     gpg --verify gnupg-2.2.23.tar.bz2.sig gnupg-2.2.23.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 gnupg-2.2.23.tar.bz2, you run the command like this:

     sha1sum gnupg-2.2.23.tar.bz2

   and check that the output matches the next line:

bd949b4af7426e4afc13667d678503063c6aa4b5  gnupg-2.2.23.tar.bz2
c4435707bef33a612d54114f53837b19fcea38f5  gnupg-w32-2.2.23_20200903.tar.xz
489bc6de0a078248086f3214ca298dd6145ec497  gnupg-w32-2.2.23_20200903.exe


Internationalization
====================

This version of GnuPG has support for 26 languages with Chinese
(traditional and simplified), Czech, French, German, Japanese,
Norwegian, Polish, Russian, and Ukrainian being almost completely
translated.


Documentation and Support
=========================

If you used GnuPG in the past you should read the description of
changes and new features at doc/whats-new-in-2.1.txt or online at

  https://gnupg.org/faq/whats-new-in-2.1.html

The file gnupg.info has the complete reference manual of the system.
Separate man pages are included as well but they miss some of the
details available only in thee manual.  The manual is also available
online at

  https://gnupg.org/documentation/manuals/gnupg/

or can be downloaded as PDF at

  https://gnupg.org/documentation/manuals/gnupg.pdf .

You may also want to search the GnuPG mailing list archives or ask on
the gnupg-users mailing list for advise on how to solve problems.  Most
of the new features are around for several years and thus enough public
experience is available.  https://wiki.gnupg.org has user contributed
information around GnuPG and relate software.

In case of build problems specific to this release please first check
https://dev.gnupg.org/T5045 for updated information.

Please consult the archive of the gnupg-users 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 gnupg-devel mailing list for
discussion.


Thanks
======

Since 2001 maintenance and development of GnuPG is done by g10 Code GmbH
and currently mostly financed by donations.  Two full-time employed
developers as well as two contractor exclusively work on GnuPG and
closely related software like Libgcrypt, GPGME and Gpg4win.

We like to thank all the nice people who are helping the GnuPG project,
be it testing, coding, translating, 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 in a
good and secure shape and to address all the small and larger requests
made by our users.  Thanks.

Special thanks to Andreas Stieger for reporting a bug and providing
detailed information for us to track this down.


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: 2021-12-31]
  Key fingerprint = D869 2123 C406 5DEA 5E0F  3AB5 249B 39D2 4F25 E3B6
  Werner Koch (dist sig)

  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)

  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)

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.
-- 
If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package,
see https://www.gnu.org/help/evaluation.html.


to post comments

GnuPG 2.2.23 released, fixing a critical security flaw

Posted Sep 3, 2020 18:35 UTC (Thu) by cyperpunks (subscriber, #39406) [Link] (3 responses)

If the code is half as complex as the ui I would not be surprised.

Why must security software be this incredible difficult to use?

GnuPG 2.2.23 released, fixing a critical security flaw

Posted Sep 3, 2020 21:00 UTC (Thu) by aheinecke (subscriber, #93141) [Link]

Heyo, I'm the frontend designer since 2015. Yes lots of old baggage but we really try to design our Frontends for users withough prexisting knowledge. For example I've redesigned the File Encryption GUI to work like a MUA with the Certificate Storage as the Addressbook.

Anything concrete you find too complicated? Issues at https://dev.gnupg.org are appreciated.

About usability of security software

Posted Sep 8, 2020 8:47 UTC (Tue) by ber (subscriber, #2142) [Link] (1 responses)

Note that GnuPG is the crypto engine, it has to be versatile. And the number of function points needed for cryptography that can be used a few years is large. New algorithms and methods are added, while elder ones still have to be supported. And GnuPG wants to be interoperable with other implementations.

As for the usability: if approaches like the web key directory (https://wiki.gnupg.org/WKD) are used, it is possible to have a much improved user experience which retains many security properties while acting automatic in most situations. Of course more clients, like email clients, need to support it, just like email providers. At the rate of the adoption, you can see the market pressure (low, many people are unwilling to pay more for security in this area).

But there is also a general catch with security (not just in IT): In case of attacks there must be a possibility for humans to defend their assets and to take decisions depending on their security needs. There is no way around this aspect involving thinking and some training. All software products can only support it so much by being informative as good as they can.

Regards,
Bernhard
(Who is part of the GnuPG/Gpg4win team and has been involved designing WKD a few years ago.)

About usability of security software

Posted Sep 12, 2020 9:23 UTC (Sat) by flussence (guest, #85566) [Link]

This is what I guess causes most of the complaints:
> ~ $ gpg --<tab><tab>
>Display all 397 possibilities? (y or n)

GnuPG is cathedral software: it requires dedication and knowledge investment/upkeep to understand and use effectively, or else you have to trust someone else to get all that right and abstract it away out of sight for you (leading to horrors like Keybase), with no in-between.

Most other CLI tools that try to cover as much ground (see most VCSes, build systems, graphicsmagick, openssl) shape their user interface into tiers of binaries or subcommands, so that users can tune out the parts they don't need to get things done. Maybe if gpg had something more like those it would see higher usage.


Copyright © 2020, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds