From wk at gnupg.org Tue Jan 27 17:49:42 2026
From: wk at gnupg.org (Werner Koch)
Date: Tue, 27 Jan 2026 17:49:42 +0100
Subject: [Announce] GnuPG and Gpg4win Security Advisory (T8044)
Message-ID: <877bt30zmh.fsf@jacob.g10code.de>
Hello!
We are pleased to announce the availability of a new GnuPG release:
version 2.5.17. This version fixes a *critical security bug* in
versions 2.5.13 to 2.5.16. We also released a new Gpg4win version and
updated Debian packages.
Impact
======
These versions are affected:
- GnuPG 2.5.16 (released 2025-12-30)
- GnuPG 2.5.15 (released 2025-12-29)
- GnuPG 2.5.14 (released 2025-11-19)
- GnuPG 2.5.13 (released 2025-10-22)
- Gpg4win 5.0.0 (released 2026-01-14)
- Gpg4win 5.0.0-beta479 (released 2026-01-02)
- Gpg4win 5.0.0-beta476 (released 2025-12-22)
- Gpg4win 5.0.0-beta395 (released 2025-10-22)
All other versions are not affected.
A crafted CMS (S/MIME) EnvelopedData message carrying an oversized
wrapped session key can cause a stack buffer overflow in gpg-agent
during the PKDECRYPT--kem=CMS handling. This can easily be used for a
DoS but, worse, the memory corruption can very likley also be used to
mount a remote code execution attack. The bug was introduced while
changing an internal API to the FIPS required KEM API.
A CVE-id has not been assigned. We track this bug as T8044 under
https://dev.gnupg.org/T8044. This vulnerability was discovered by:
OpenAI Security Research. Their report was received on 2026-01-18;
fixed versions released 2026-01-27.
Solution
========
If an affected GnuPG version is used please update ASAP to the new
version 2.5.17.
If an affected version of Gpg4win is used please update ASAP to the new
version 5.0.1.
If an immediate update is not possible please remove the gpgsm or
gpgsm.exe binary; this way the bug can't be remotely triggered.
Noteworthy changes in version 2.5.17 (2026-01-27)
=================================================
[compared to version 2.5.16]
* agent: Fix stack buffer overflow when using gpgsm and KEM. This
was introduced with 2.5.13; see above. [T8044]
* tpm: Fix possible buffer overflow in PKDECRYPT. [T8045]
* gpg: Fix possible NULL-deref with overlong signature packets. [T8049]
* gpg: New export-option "keep-expired-subkeys". [T7990]
* gpgsm: Make multiple search patterns work with keyboxd. [T8026]
* agent: Add accelerator keys for "Wrong" and "Correct". [T8055]
* dirmngr: Help detection of bad keyserver configurations. [T7730]
Release-info: https://dev.gnupg.org/T7996
Getting the Software
====================
Please follow the instructions found at or
read on:
GnuPG may be downloaded from one of the GnuPG mirror sites or direct
from its primary file server. The list of mirrors can be found at
. 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.5.17.tar.bz2 (8113k)
https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.5.17.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.5.17_20260127.exe (5573k)
https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.5.17_20260127.exe.sig
The source used to build this installer for 64-bit Windows is available as
https://gnupg.org/ftp/gcrypt/gnupg/gnupg-w32-2.5.17_20260127.tar.xz (15M)
https://gnupg.org/ftp/gcrypt/gnupg/gnupg-w32-2.5.17_20260127.tar.xz.sig
This source tarball may also be used to download all required libraries
at once to build a Unix version on any modern system. See the included
README.
Debian Packages
===============
We also provide new Debian style packages for a couple of Debian
variants. See https://repos.gnupg.org/deb/gnupg/trixie/ or use the menu
to switch to other distros/releases. It may take a view hours before
the new packages show up. If you encounter other packaging problems
please report them to the gnupg-devel mailing list.
Windows Installer
=================
A new version of Gpg4win (5.0.1), our full featured Windows installer,
including this version of GnuPG, the Kleopatra GUI, and a PDF reader has
also been released. Head over to https://gpg4win.org/
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.5.17.tar.bz2 you would use this command:
gpg --verify gnupg-2.5.17.tar.bz2.sig gnupg-2.5.17.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.5.17.tar.bz2, you run the command like this:
sha1sum gnupg-2.5.17.tar.bz2
and check that the output matches the next line:
ee0bc59eadf258b6d92131911b5dca6cabc89419 gnupg-2.5.17.tar.bz2
8826ff58e245c9700391fefff34afe775300e7cd gnupg-w32-2.5.17_20260127.tar.xz
31ac31fe8f5b4f3e3ae8e5e6a70c967a59f66e63 gnupg-w32-2.5.17_20260127.exe
Internationalization
====================
This version of GnuPG has support for 26 languages with Chinese, Czech,
Dutch, French, Georgian, German, Italian, Japanese, Norwegian, Polish,
Portuguese, Russian, Swedish, Turkish, and Ukrainian being almost
completely translated.
Documentation and Support
=========================
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 the 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.
If you are using cleartext signatures in your application please read
https://gnupg.org/blog/20251226-cleartext-signatures.html .
In case of build problems specific to this release please first check
https://dev.gnupg.org/T7996 for updated information. We are sorry that
due to ongoing DoS on this service, you may end up at a "is under
maintenance page".
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 has mostly been financed by donations. A team of full-time employed
developers and contractors are working exclusively on GnuPG and related
software like Libgcrypt, GPGME, Kleopatra, Okular, and Gpg4win.
Fortunately, and this is still not common with free software, we have
established a way of financing the development while keeping all our
software free and freely available for everyone. Our model is similar
to the way RedHat manages RHEL and Fedora: Except for the actual binary
of the MSI installer for Windows and client specific configuration
files, all the software is available under the GNU GPL and other Open
Source licenses. Thus customers may even build and distribute their own
version of the software as long as they do not use our trademarks
GnuPG Desktop? or GnuPG VS-Desktop?.
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, answering questions on the mailing
lists, or helped with donations.
*Thank you all*
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.
* 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 [SC] [expires: 2030-06-30]
6DAA 6E64 A76D 2840 571B 4902 5288 97B8 2640 3ADA
Werner Koch (dist signing 2020)
ed25519 2021-05-19 [SC] [expires: 2027-04-04]
AC8E 115B F73E 2D8D 47FA 9908 E98E 9B2D 19C6 C8BD
Niibe Yutaka (GnuPG Release Key)
rsa3072 2025-05-09 [SC] [expires: 2033-03-03]
3B76 1AE4 E63B F351 9CE7 D63B ECB6 64CB E133 2EEF
Alexander Kulbartsch (GnuPG Release Key)
brainpoolP256r1 2021-10-15 [SC] [expires: 2029-12-31]
02F3 8DFF 731F F97C B039 A1DA 549E 695E 905B A208
GnuPG.com (Release Signing Key 2021)
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.
* Debian Package Signing Key:
The new Debian style packages are signed using this key:
ed25519 2025-07-08 [SC] [expires: 2035-07-14]
3209 7B71 9B37 45D6 E61D DA1B 85C4 5AE3 E1A2 B355
GnuPG.org Package Signing Key
See the package website (https://repos.gnupg.org/deb/gnupg) for a list
of supported distributions and a download link for the key.
--
Arguing that you don't care about the right to privacy because you have
nothing to hide is no different from saying you don't care about free
speech because you have nothing to say. - Edward Snowden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 284 bytes
Desc: not available
URL:
From wk at gnupg.org Thu Jan 29 14:09:43 2026
From: wk at gnupg.org (Werner Koch)
Date: Thu, 29 Jan 2026 14:09:43 +0100
Subject: [Announce] Libgcrypt 1.12.0 released
Message-ID: <87ecn8y38o.fsf@jacob.g10code.de>
Hello!
We are pleased to announce the availability of Libgcrypt version 1.12.0.
This release starts a new stable branch of Libgcrypt with full API and
ABI compatibility to the 1.11 series. Since the last major release
Jussi Kivilinna put again a lot of work into speeding up the algorithms
for modern CPUs. Niibe-san implemented new APIs and algorithms and
adjusted the interface for new FIPS requirements. See below for a list
of improvements and new features in 1.12.
Libgcrypt is a general purpose library of cryptographic building blocks.
It does not provide implementations of protocols like *PGP. Thorough
understanding of applied cryptography is required for safe use of
Libgcrypt.
Noteworthy changes in version 1.12.0 (2026-01-29)
-------------------------------------------------
* New and extended interfaces:
- Allow access to the FIPS service indicator via the new
GCRYCTL_FIPS_SERVICE_INDICATOR control code.
[T7338,rCd0db6a5abf,rCf51f4e9893]
- Add GCRYCTL_FIPS_REJECT_NON_FIPS control code. [T7338,rCe52adf0948]
- Add GCRY_FIPS_FLAG_REJECT_PK_FLAGS constant. [T7338,rC0414e126b9]
- Make SHA-1 non-FIPS internally for the 1.12 API. This introduces
the GCRY_FIPS_FLAG_REJECT_MD_SHA1 constant. [rC4ee91a94bc]
- Add GCRY_FIPS_FLAG_REJECT_PK_FLAGS. [rC0414e126b9]
- Provide macros for each KEM enum constant. [rCe9b1c3ec91]
- Add Dilithium (ML-DSA) support. [T7640]
- Support optional random-override and support byte string data.
[rCcbefff5fca,rC3bb4a54f43]
* Performance:
- Add VAES/AVX512 accelerated implementation for AES which boosts
OCB performance by about 2 times on AMD Zen5. [rC9e3af928ee]
- Avoid AVX512/AVX2/SSSE3 for single block processing with Zen5 for
ChaCha20. [rCc1d9fff3b2]
- Avoid AVX/AVX2/AVX512 when CPU has high vector inst latency like
Zen5 for Blake2. [rCe5bc3b2826]
- Various optimizations for Camellia.
[rCf5848080d4,rCb9bafd6c6c,rC8b538a8c76]
- Add POLYVAL acceleration for RISC-V and GCM-SIV. [rC00815c4207]
- Add RISC-V Zbb+Zbc implementation of CRC. [rCab4fa2a19c]
- Add RISC-V vector cryptography implementation of GHASH.
[rCcc2a4b6388]
- Add RISC-V vector cryptography implementation of AES.
[rCb000ab6025]
- Add RISC-V vector cryptography implementations of SHA256 and
SHA512. [rCcc1d5b0b5e]
- Add AVX2 and AVX512 code paths to improve CRC. [rCc30788969d]
* Bug fixes:
- Use secure MPI in _gcry_mpi_assign_limb_space. [rC6e77b09cff]
- Use CSIDL_COMMON_APPDATA instead of /etc on Windows. [rCd5e3cbfd88]
- Apply a Kyber patch from upstream. [rCbdc3724d72]
- Fix an edge case in Jent initialization. [rC0ceca9993f]
- mceliece6688128f: Fix stack overflow crash on win64/wine
[rC5bd9320171]
* Other:
- Add support for IBM z/OS, fixing -lpthread check with glibc.
[rC5af59d8454]
- Introduce mpi_tfr and use it for point_tfr to decrease EM signal
and increase EM noise. [rC4e65996bb8]
- Handle HAVE_BROKEN_MLOCK for the case of building with ASAN.
[T7889]
- Harden mask generation against branch optimization for several
algorithms. [e.g. rC4012e9a037,rCbf7546c502,rC052b03fb0c]
- Improve constant-time operation for ECDSA. [T7519,rC0bd4c77be6]
Changes also found in 1.11.2:
* Bug fixes:
- Fix link errors in regression test t-thread-local on some
platforms (e.g. NetBSD). [T7634]
- Add missing file to allow building for RISC-V. [T7647]
- Support secp256k1 by KEM API. GnuPG has recently switched to use
the KEM interface and a few folks are using this curve. [T7698]
- Fix a missing initialization in RSA's generate_fips.
[rG292cb75a72]
* Other:
- Silence GCC 15 warnings [rCd5fb7cd9b3,T7617]
- Provide a prototype for __udiv_qrnnd for PowerPC and Alpha which
is required due to GCC-15 changes. [T7721]
- Add missing abi versions and machine tags for PowerPC assembly
with GCC-15. [T7721]
- Use '.rodata' section for read-only data of poly1305-p10le.
[T7721]
Changes also found in 1.11.1:
* Bug fixes:
- Fix build regression on 32 bit Windows using Clang. [T7175]
- Fix build regression on macOS due to symbol naming. [T7170]
- Fix Kyber secret-dependent branch introduced by recent versions
of Clang. [rCf765778e82]
- Fix build regression due to the use of AVX512 in Blake. [T7184]
- Do not build i386 asm on amd64 and vice versa. [T7220]
- Fix build regression on armhf with gcc-14. [T7226]
- Return the proper error code on malloc failure in hex2buffer.
[rCc51151f5b0]
- Fix long standing bug for PRIME % 2 == 0. [rC639b0fca15]
* Performance:
- Add AES Vector Permute intrinsics implementation for AArch64.
[rC94a63aedbb]
- Add GHASH AArch64/SIMD intrinsics implementation. [rCfec871fd18]
- Add RISC-V vector permute AES. [rCb24ebd6163]
- Add GHASH RISC-V Zbb+Zbc implementation. [rC0f1fec12b0]
- Add ChaCha20 RISC-V vector intrinsics implementation.
[rC8dbee93ac2]
- Add SHA3 acceleration for RISC-V Zbb extension. [rC1a660068ba]
* Other:
- Add CET support for i386 and amd64 assembly. [T7220]
- Add PAC/BTI support for AArch64 asm. [T7220]
- Apply changes to Kyber from upstream for final FIPS 203.
[rCcc95c36e7f]
- Introduce an internal API for a revampled FIPS service indicator.
[T7340]
- Several improvements for constant time operation by the
introduction of Least Leak Intended (LLI) variants of internal
functions. [T7519,T7490]
- Remove WindowsCE support. [T7486]
* Interface changes relative to the 1.11.0 release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GCRY_KEM_RAW_P256R1 NEW enum and const.
GCRYCTL_FIPS_SERVICE_INDICATOR NEW enum.
GCRYCTL_FIPS_REJECT_NON_FIPS NEW enum.
GCRY_FIPS_FLAG_REJECT_PK_FLAGS NEW const.
GCRY_FIPS_FLAG_REJECT_MD_SHA1 NEW const.
For a list of links to commits and bug numbers see the release info at
https://dev.gnupg.org/T7643
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.12.0.tar.bz2
https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.12.0.tar.bz2.sig
or gzip compressed:
https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.12.0.tar.gz
https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.12.0.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.12.0.tar.bz2 you would use this
command:
gpg --verify libgcrypt-1.12.0.tar.bz2.sig libgcrypt-1.12.0.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.12.0.tar.bz2, you run the command like this:
sha1sum libgcrypt-1.12.0.tar.bz2
and check that the output matches the first line from the
this list:
02f80e9bc9967609b7041ef874eae4e542f240a5 libgcrypt-1.12.0.tar.bz2
1327dd6ca3ec2309ac750ef1c01cbd96432f11a8 libgcrypt-1.12.0.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/T7643 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 .
Please see https://gnupg.org/documentation/security.html for information
on how to report security issues and for our threat model.
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 has mostly been financed by donations. Several full-time employed
developers and contractors are working exclusively on GnuPG and closely
related software like Libgcrypt, GPGME, Kleopatra and Gpg4win.
Fortunately, and this is still not common with free software, we have
now established a way of financing the development while keeping all our
software free and freely available for everyone. Our model is similar
to the way RedHat manages RHEL and Fedora: Except for the actual binary
of the MSI installer for Windows and client specific configuration
files, all the software is available under the GNU GPL and other Open
Source licenses. Thus customers may even build and distribute their own
version of the software as long as they do not use our trademarks
GnuPG Desktop? or GnuPG VS-Desktop?.
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, answering questions on the mailing
lists, or helping with donations.
*Thank you all*
Your Libgcrypt hackers
p.s.
This is an announcement only mailing list. Please send replies only to
the gcrypt-devel'at'gnupg.org mailing list.
* 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 [SC] [expires: 2030-06-30]
6DAA 6E64 A76D 2840 571B 4902 5288 97B8 2640 3ADA
Werner Koch (dist signing 2020)
ed25519 2021-05-19 [SC] [expires: 2027-04-04]
AC8E 115B F73E 2D8D 47FA 9908 E98E 9B2D 19C6 C8BD
Niibe Yutaka (GnuPG Release Key)
rsa3072 2025-05-09 [SC] [expires: 2033-03-03]
3B76 1AE4 E63B F351 9CE7 D63B ECB6 64CB E133 2EEF
Alexander Kulbartsch (GnuPG Release Key)
brainpoolP256r1 2021-10-15 [SC] [expires: 2029-12-31]
02F3 8DFF 731F F97C B039 A1DA 549E 695E 905B A208
GnuPG.com (Release Signing Key 2021)
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.
* Debian Package Signing Key:
The new Debian style packages are signed using this key:
ed25519 2025-07-08 [SC] [expires: 2035-07-14]
3209 7B71 9B37 45D6 E61D DA1B 85C4 5AE3 E1A2 B355
GnuPG.org Package Signing Key
See the package website (https://repos.gnupg.org/deb/gnupg) for a list
of supported distributions and a download link for the key.
--
The pioneers of a warless world are the youth that
refuse military service. - A. Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 284 bytes
Desc: not available
URL: