1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00
gnupg/g10
Werner Koch 48978ccb4e
gpg: Fix a verification DoS due to a malicious subkey in the keyring.
* g10/getkey.c (get_pubkey): Factor code out to ...
(get_pubkey_bykid): new.  Add feature to return the keyblock.
(get_pubkey_for_sig): Add arg r_keyblock to return the used keyblock.
Request a signing usage.
(get_pubkeyblock_for_sig): Remove.
(finish_lookup): Improve debug output.
* g10/sig-check.c (check_signature): Add arg r_keyblock and pass it
down.
* g10/mainproc.c (do_check_sig): Ditto.
(check_sig_and_print): Use the keyblock returned by do_check_sig to
show further information instead of looking it up again with
get_pubkeyblock_for_sig.  Also re-check the signature after the import
of an included keyblock.
--

The problem here is that it is possible to import a key from someone
who added a signature subkey from another public key and thus inhibits
that a good signature good be verified.

Such a malicious key signature subkey must have been created w/o the
mandatory backsig which bind a signature subkey to its primary key.
For encryption subkeys this is not an issue because the existence of a
decryption private key is all you need to decrypt something and then
it does not matter if the public subkey or its binding signature has
been put below another primary key; in fact we do the latter for
ADSKs.

GnuPG-bug-id: 7527
2025-02-21 12:17:46 +01:00
..
all-tests.scm tests: Support semihosted environment. 2022-12-01 13:59:06 +09:00
armor.c gpg: Fix handling with no CRC armor. 2025-01-20 15:07:19 +09:00
build-packet.c gpg: Improve detection of input data read errors. 2024-09-06 16:09:49 +02:00
call-agent.c gpg: Store Link attributes for composite keys. 2025-02-07 11:10:09 +01:00
call-agent.h gpg: Store Link attributes for composite keys. 2025-02-07 11:10:09 +01:00
call-dirmngr.c gpg: Fix getting key by IPGP. 2024-09-11 13:51:16 +09:00
call-dirmngr.h gpg: Lookup a missing public key of the current card via LDAP. 2021-04-16 20:21:23 +02:00
call-keyboxd.c gpg: New debug flag "keydb". 2024-08-09 09:31:54 +02:00
card-util.c gpg: Show the default PIN hint also before "name" and "key-attr" 2025-01-09 11:42:02 +01:00
ChangeLog-2011 delete redundant characters 2023-06-20 09:08:29 +09:00
cipher-aead.c gpg: Report BEGIN_* status before examining the input. 2023-11-17 08:40:49 +09:00
cipher-cfb.c gpg: Report BEGIN_* status before examining the input. 2023-11-17 08:40:49 +09:00
compress-bz2.c gpg: Emit status lines for errors in the compression layer. 2024-02-27 11:33:21 +01:00
compress.c gpg: Increase compress buffer size. 2024-08-08 17:31:26 +02:00
cpr.c gpg,common,scd,sm: Function prototype fixes for modern compiler. 2022-09-13 16:34:00 +09:00
dearmor.c gpg: Make --no-literal work again for -c and --store. 2024-09-06 16:09:49 +02:00
decrypt-data.c gpg: Avoid wrong decryption_failed for signed+OCB msg w/o pubkey. 2024-09-19 10:06:55 +02:00
decrypt.c gpg: New commands --add-recipients and --change-recipients. 2024-09-09 16:47:04 +02:00
dek.h gpg: More check for symmetric key encryption. 2019-07-18 11:02:34 +09:00
delkey.c gpg: Fix the previous commit. 2020-11-11 09:13:13 +09:00
distsigkey.gpg Update release signing keys 2021-11-13 21:03:02 +01:00
ecdh.c gpg: Some support to allow Kyber decryption. 2024-04-09 11:01:56 +02:00
encrypt.c gpg: Force the use of AES-256 in some cases 2025-01-06 18:17:07 +01:00
exec.c gpg: Move w32_system function. 2022-11-09 10:37:58 +09:00
exec.h gpg: Move w32_system function. 2022-11-09 10:37:58 +09:00
expand-group.c gpg: Fix expand GPG groups when resolving a key 2019-09-30 14:08:13 +02:00
export.c common,gpg,scd,sm: Fix for Curve25519 OID supporting new and old. 2024-10-08 15:25:41 +09:00
filter.h gpg: New commands --add-recipients and --change-recipients. 2024-09-09 16:47:04 +02:00
free-packet.c gpg: Simplify the pubkey_enc_list object 2024-09-06 16:09:49 +02:00
getkey.c gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
gpg-w32info.rc w32: Add manifest to gpg. 2015-02-04 09:15:34 +01:00
gpg.c gpg: New option --disable-pqc-encryption. 2025-02-06 17:45:23 +01:00
gpg.h gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
gpg.w32-manifest.in w32: Add missing supportedOS Ids for Windows-10 2023-05-24 14:17:06 +02:00
gpgsql.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
gpgsql.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gpgv-w32info.rc w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-24 12:14:06 +02:00
gpgv.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
gpgv.w32-manifest.in w32: Add missing supportedOS Ids for Windows-10 2023-05-24 14:17:06 +02:00
helptext.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
import.c gpg: Lookup key for merging/inserting only beu primary key. 2025-02-11 14:46:19 +01:00
kbnode.c gpg: Import stray revocation certificates. 2022-10-28 09:30:49 +02:00
key-check.c agent,dirmngr,gpg,scd: Clean up for modern compiler. 2022-09-14 12:08:58 +09:00
key-check.h gpg: Avoid output to the tty during import. 2017-07-27 11:38:57 +02:00
key-clean.c indent: Fix spelling 2024-05-31 12:28:32 +02:00
key-clean.h gpg: Prepare for a new export option export-realclean. 2024-03-04 14:22:42 +01:00
keydb-private.h kbx: Fix for building without keyboxd. 2025-02-06 15:46:15 +01:00
keydb.c Require gpgrt 1.51 2024-12-04 11:04:41 +01:00
keydb.h gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
keyedit.c gpg: Allow the use of an ADSK subkey as ADSK subkey. 2024-10-31 15:11:55 +01:00
keyedit.h gpg: New option --default-new-key-adsk. 2024-06-03 18:52:06 +02:00
keygen.c gpg: Store Link attributes for composite keys. 2025-02-07 11:10:09 +01:00
keyid.c gpg: Fix comparing ed448 vs ed25519 with --assert-pubkey-algo. 2024-11-22 16:46:15 +01:00
keylist.c gpg: For composite algos add the algo string to the colons listings. 2024-11-14 14:04:50 +01:00
keyring.c gpg: New debug flag "keydb". 2024-08-09 09:31:54 +02:00
keyring.h gpg: Pass CTRL to many more functions. 2017-03-31 20:07:20 +02:00
keyserver-internal.h gpg: Implement the LDAP AKL method. 2024-06-04 18:02:02 +02:00
keyserver.c gpg: Rename recently added import option no-seckeys to only-pubkeys. 2024-06-24 11:49:05 +02:00
main.h gpg: New commands --add-recipients and --change-recipients. 2024-09-09 16:47:04 +02:00
mainproc.c gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
Makefile.am build: Remove configure option --enable-gpg-is-gpg2 2024-09-11 14:30:40 +02:00
mdfilter.c gpg: Add parallelized filter for hashing. 2023-07-25 12:10:07 +09:00
migrate.c Replace most of the remaining stdio calls by estream calls. 2020-10-20 12:15:56 +02:00
misc.c gpg: Fix minor Kyber display things. 2024-04-15 13:25:07 +02:00
objcache.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
objcache.h gpg: Fix getting User ID. 2019-07-11 12:32:44 +09:00
openfile.c gpg: New commands --add-recipients and --change-recipients. 2024-09-09 16:47:04 +02:00
options.h gpg: New option --disable-pqc-encryption. 2025-02-06 17:45:23 +01:00
packet.h gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
parse-packet.c gpg: Allow for longer signature subpackets. 2024-12-09 13:23:39 +01:00
passphrase.c gpg,common,scd,sm: Function prototype fixes for modern compiler. 2022-09-13 16:34:00 +09:00
photoid.c gpg: Minor fix when building with --disable-exec 2024-08-19 10:31:44 +02:00
photoid.h gpg: A little clean up. 2019-07-23 12:04:21 +09:00
pkclist.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
pkglue.c gpg: Fix modifying signature data by pk_verify for Ed25519. 2024-11-25 11:05:58 +01:00
pkglue.h gpg: Add arg session_algo to pk_decrypt. 2024-04-15 09:23:54 +02:00
plaintext.c common: Introduce FD_DBG to display gnupg_fd_t value. 2023-07-18 11:54:16 +09:00
progress.c gpg: Make progress work for large files on Windows. 2023-06-13 10:07:07 +02:00
pubkey-enc.c gpg: Allow smaller session keys with Kyber 2025-01-06 18:11:59 +01:00
pubring.asc Update copyright notices for 2017. 2017-01-23 19:16:55 +01:00
revoke.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
rmd160.c build: Don't remove --disable-endian-check. 2024-10-16 11:41:46 +09:00
rmd160.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
seckey-cert.c More change for common. 2017-03-07 20:32:09 +09:00
server.c common,gpg,kbx: Factor out open_stream_nc. 2023-07-10 11:22:43 +09:00
seskey.c gpg: Changed internal data format for Kyber. 2024-04-11 15:56:21 +02:00
sig-check.c gpg: Fix a verification DoS due to a malicious subkey in the keyring. 2025-02-21 12:17:46 +01:00
sign.c indent: Fix spelling 2024-05-31 12:28:32 +02:00
skclist.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
t-keydb-get-keyblock.c gpg: Add option --assert-pubkey_algo. 2024-02-10 14:26:55 +01:00
t-keydb-get-keyblock.gpg gpg: Correctly handle keyblocks followed by legacy keys. 2015-11-17 14:53:03 +01:00
t-keydb-keyring.kbx g10: Add test for keydb as well as new testing infrastructure. 2015-09-02 15:08:57 +02:00
t-keydb.c gpg: Add option --assert-pubkey_algo. 2024-02-10 14:26:55 +01:00
t-keyid.c gpg: Fix comparing ed448 vs ed25519 with --assert-pubkey-algo. 2024-11-22 16:46:15 +01:00
t-rmd160.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-stutter-data.asc gpg: Add a new test. 2016-03-08 14:08:49 +01:00
t-stutter.c gpg: Add option --assert-pubkey_algo. 2024-02-10 14:26:55 +01:00
tdbdump.c Merge branch 'STABLE-BRANCH-2-4' 2024-03-12 16:00:55 +01:00
tdbio.c gpg: Prepare for a new export option export-realclean. 2024-03-04 14:22:42 +01:00
tdbio.h gpg: Prepare for a new export option export-realclean. 2024-03-04 14:22:42 +01:00
test-stubs.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
test.c gpg: Add option --assert-pubkey_algo. 2024-02-10 14:26:55 +01:00
textfilter.c gpg: Initialize a parameter to silence valgrind. 2020-09-04 11:32:47 +02:00
tofu.c gpg: Rename functions with an "fprint" part to "fpr" 2024-06-04 15:27:41 +02:00
tofu.h g10: Remove dead code. 2016-12-06 12:16:56 +01:00
trust.c gpg: New option --add-desig-revoker 2023-02-16 18:10:03 +01:00
trustdb.c gpg: Silence expired trusted-key diagnostics in quiet mode. 2024-12-05 16:32:25 +01:00
trustdb.h gpg: Fix adding the list of ultimate trusted keys. 2022-01-12 13:34:31 +09:00
verify.c Merge branch 'STABLE-BRANCH-2-4' 2024-03-12 16:00:55 +01:00
zlib-riscos.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00