[Announce] [security fix] GnuPG 2.2.8 released (CVE-2018-12020)
Juergen Bruckner
juergen at bruckner.tk
Mon Jun 11 11:07:37 CEST 2018
I did NOT encrypt the Message, just signed it with my PGP-Key - This
message is now without sign or encrypt
Am 2018-06-10 um 22:50 schrieb Jean-David Beyer:
> On 06/10/2018 01:25 PM, Juergen Bruckner wrote:
>> Hello Werner,
>>
>> i Use Linux Mint 18.3 with GnuPG 2.1.11; which is the easiest way to
>> Update it to 2.2.8?
>>
>>
>> I'm pretty new to the Linux-World, but as far i know i have NOT included
>> a "own" GnuPG Repo in my Repo-List.
>>
>> best regards
>> Juergen
>>
>> Am 2018-06-08 um 15:40 schrieb Werner Koch:
>>> Hello!
>>>
>>> We are pleased to announce the availability of a new GnuPG release:
>>> version 2.2.8. This version fixes a critical security bug and comes
>>> with some other minor changes.
>>>
>>>
>>> Impact
>>> ======
>>>
>>> All current GnuPG versions are affected on all platforms.
>>>
>>> All mail clients and other applications which make use of GPG but are
>>> not utilizing the GPGME library might be affected.
>>>
>>> The OpenPGP protocol allows to include the file name of the original
>>> input file into a signed or encrypted message. During decryption and
>>> verification the GPG tool can display a notice with that file name. The
>>> displayed file name is not sanitized and as such may include line feeds
>>> or other control characters. This can be used inject terminal control
>>> sequences into the out and, worse, to fake the so-called status
>>> messages. These status messages are parsed by programs to get
>>> information from gpg about the validity of a signature and an other
>>> parameters. Status messages are created with the option "--status-fd N"
>>> where N is a file descriptor. Now if N is 2 the status messages and the
>>> regular diagnostic messages share the stderr output channel. By using a
>>> made up file name in the message it is possible to fake status messages.
>>> Using this technique it is for example possible to fake the verification
>>> status of a signed mail.
>>>
>>> Although GnuPG takes great care to sanitize all diagnostic and status
>>> output, the case at hand was missed but finally found and reported by
>>> Marcus Brinkmann. CVE-2018-12020 was assigned to this bug; GnuPG tracks
>>> it at <https://dev/gnupg.org/T4012>.
>>>
>>>
>>> Solution
>>> ========
>>>
>>> If your application uses GPGME your application is safe. Fortunately
>>> most modern mail readers use GPGME, including GpgOL and KMail. Mutt
>>> users should make sure to use "set crypt_use_gpgme".
>>>
>>> If you are parsing GnuPG status output and you use a dedicated file
>>> descriptor with --status-fd you are safe. A dedicated file descriptor
>>> is one that is not shared with the log output. The log output defaults
>>> to stderr (2) but may be a different if the option --logger-fd is used.
>>>
>>> If you are not using --verbose you are safe. But take care: --verbose
>>> might be specified in the config file. As a short term mitigation or if
>>> you can't immediately upgrade to the latest versions, you can add
>>> --no-verbose to the invocation of gpg.
>>>
>>> Another short term mitigation is to redirect the log output to a
>>> different file: For example "--log-file /dev/null".
>>>
>>> The suggested solution is to update to GnuPG 2.2.8 or a vendor provided
>>> update of their GnuPG version.
>>>
>>> To check whether the bug has been fixed you may use the simple test at
>>> the end of this mail [1].
>>>
>>>
>>> About GnuPG
>>> ===========
>>>
>>> The GNU Privacy Guard (GnuPG) is a complete and free implementation
>>> of the OpenPGP standard which is commonly abbreviated as PGP.
>>>
>>> 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. 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.8
>>> ===================================
>>>
>>> * gpg: Decryption of messages not using the MDC mode will now lead
>>> to a hard failure even if a legacy cipher algorithm was used. The
>>> option --ignore-mdc-error can be used to turn this failure into a
>>> warning. Take care: Never use that option unconditionally or
>>> without a prior warning.
>>>
>>> * gpg: The MDC encryption mode is now always used regardless of the
>>> cipher algorithm or any preferences. For testing --rfc2440 can be
>>> used to create a message without an MDC.
>>>
>>> * gpg: Sanitize the diagnostic output of the original file name in
>>> verbose mode. [#4012,CVE-2018-12020]
>>>
>>> * gpg: Detect suspicious multiple plaintext packets in a more
>>> reliable way. [#4000]
>>>
>>> * gpg: Fix the duplicate key signature detection code. [#3994]
>>>
>>> * gpg: The options --no-mdc-warn, --force-mdc, --no-force-mdc,
>>> --disable-mdc and --no-disable-mdc have no more effect.
>>>
>>> * agent: Add DBUS_SESSION_BUS_ADDRESS and a few other envvars to the
>>> list of startup environment variables. [#3947]
>>>
>>>
>>> Getting the Software
>>> ====================
>>>
>>> Please follow the instructions found at <https://gnupg.org/download/> or
>>> read on:
>>>
>>> GnuPG 2.2.8 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.8.tar.bz2 (6477k)
>>> https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.8.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.8_20180608.exe (3916k)
>>> https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.2.8_20180608.exe.sig
>>>
>>> The source used to build the Windows installer can be found in the same
>>> directory with a ".tar.xz" suffix. A new Gpg4win installer featuring
>>> this version of GnuPG will be available soon.
>>>
>>>
>>> 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.8.tar.bz2 you would use this command:
>>>
>>> gpg --verify gnupg-2.2.8.tar.bz2.sig gnupg-2.2.8.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.8.tar.bz2, you run the command like this:
>>>
>>> sha1sum gnupg-2.2.8.tar.bz2
>>>
>>> and check that the output matches the next line:
>>>
>>> d87553a125832ea90e8aeb3ceeecf24f88de56fb gnupg-2.2.8.tar.bz2
>>> 3126ec2b7005063cbff95792208796dfa42c2a22 gnupg-w32-2.2.8_20180608.tar.xz
>>> 231b29631647328934a35f8c6baa483e7594e26a gnupg-w32-2.2.8_20180608.exe
>>>
>>>
>>> Internationalization
>>> ====================
>>>
>>> This version of GnuPG has support for 26 languages with Chinese, Czech,
>>> French, German, Japanese, Norwegian, 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 availabale 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 .
>>>
>>> The chapters on gpg-agent, gpg and gpgsm include information on how to
>>> set up the whole thing. 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.
>>>
>>> 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 check out <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
>>> ======
>>>
>>> Maintenance and development of GnuPG is mostly financed by donations.
>>> The GnuPG project currently employs one full-time developer and one
>>> contractor. Both work exclusively on GnuPG and closely related software
>>> like Libgcrypt, GPGME, and GPA. We are planning to extend our team
>>> again and to help developers to improve integration of crypto in their
>>> applications.
>>>
>>> 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.
>>>
>>> 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.
>>> ===========
>>>
>>> [1] If you want to test whether you are affected by this bug, remove the
>>> indentation from the following block
>>>
>>> -----BEGIN PGP MESSAGE-----
>>>
>>> jA0EBwMC1pW2pqoYvbXl0p4Bo5z/v7PXy7T1BY/KQxWaE9uTBRbf4no64/+5YYzX
>>> +BVNqP+82aBFYXEsD9x1vGuYwofQ4m/q/WcQDEPXhRyzU+4yiT3EOuG7sTTaQR3b
>>> 8xAn2Qtpyq5tO7k9CN6dasaXKSduXVmFUqzgU+W9WaTLOKNDFw6FYV3lnOoPtFcX
>>> rzhh2opkX9Oh/5DUkZ6YmUIX3j/A0z+59/qNO1i2hQ==
>>> =zswl
>>> -----END PGP MESSAGE-----
>>>
>>> and pass to this pipeline
>>>
>>> gpg --no-options -vd 2>&1 | grep '^\[GNUPG:] INJECTED'
>>>
>>> If you get some output you are using a non-fixed version.
>>>
>>>
>>>
>>> _______________________________________________
>>> Gnupg-announce mailing list
>>> Gnupg-announce at gnupg.org
>>> http://lists.gnupg.org/mailman/listinfo/gnupg-announce
>>>
>>>
>>>
>>> _______________________________________________
>>> Gnupg-users mailing list
>>> Gnupg-users at gnupg.org
>>> http://lists.gnupg.org/mailman/listinfo/gnupg-users
>>>
>>
>>
>>
>> _______________________________________________
>> Gnupg-users mailing list
>> Gnupg-users at gnupg.org
>> http://lists.gnupg.org/mailman/listinfo/gnupg-users
>>
> It says part of your message to me was encrypted and prompted me for my
> passphrase, but it must not have been encrypted with my public key.
>
--
Juergen M. Bruckner
juergen at bruckner.tk
More information about the Gnupg-users
mailing list