Your message dated Sat, 31 May 2025 16:33:12 +0200
with message-id <bbfadf80-33b3-4151-af31-09a14e21c...@debian.org>
and subject line Re: Bug#1106891: unblock: gnupg2/2.4.7-19
has caused the Debian Bug report #1106891,
regarding unblock: gnupg2/2.4.7-19
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1106891: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1106891
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: gnu...@packages.debian.org, gnu...@packages.debian.org
Control: affects -1 + src:gnupg2
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package gnupg2

This fixes another regression from the CVE-2025-30258 fix and
cherry-picks multiple fixes from upstream's maintenance branch
STABLE-BRANCH-2-4 which were included in 2.4.8.

unblock gnupg2/2.4.7-19

We have another fix pending (#1106800) I have just uploaded to
experimental to avoid restting the propagation timer.

cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
diff --git a/debian/changelog b/debian/changelog
index fe466a495..1b24c466d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,31 @@
+gnupg2 (2.4.7-19) unstable; urgency=medium
+
+  * Upload to unstable.
+
+ -- Andreas Metzler <ametz...@debian.org>  Wed, 14 May 2025 06:22:05 +0200
+
+gnupg2 (2.4.7-18) experimental; urgency=medium
+
+  [ Daniel Kahn Gillmor ]
+  * Handle certification-only pubkeys correctly (Closes: #1101007)
+
+  [ Andreas Metzler ]
+  * Cherry-pick fixes from upstream STABLE-BRANCH-2-4:
+    + Fix key generation with existing key from card.
+      (2.4.7 regression) https://dev.gnupg.org/T7457
+    + gpgconf: Fix reload and kill of keyboxd
+      https://dev.gnupg.org/T7569
+    + keyboxd: Convert upper-case email-address search string to lower-case
+      https://dev.gnupg.org/T7576
+    + Fix use of undefined behavior in ksba-io-support.c
+      (Use memchr since calling strchr on a non-NUL terminated string is
+      undefined behavior.)
+    + Fix --list-filter select='disabled-f'.
+
+ -- Andreas Metzler <ametz...@debian.org>  Sun, 11 May 2025 13:04:10 +0200
+
 gnupg2 (2.4.7-17) unstable; urgency=medium
 
   * re-enable piuparts in salsa-ci, keyboxd package is no more.
   * disable missing-breaks salsa ci. (fp: gpg-from-sq)
   * Add pkg.gnupg2.gpgvonly build profile. (Thanks, Helmut Grohne)
diff --git a/debian/patches/from-upstream/0001-gpg-Fix-key-generation-with-existing-key-from-card.patch b/debian/patches/from-upstream/0001-gpg-Fix-key-generation-with-existing-key-from-card.patch
new file mode 100644
index 000000000..3a4a7f2ae
--- /dev/null
+++ b/debian/patches/from-upstream/0001-gpg-Fix-key-generation-with-existing-key-from-card.patch
@@ -0,0 +1,30 @@
+From: NIIBE Yutaka <gni...@fsij.org>
+Date: Mon, 16 Dec 2024 09:56:24 +0900
+Subject: [PATCH 01/10] gpg: Fix key generation with existing key from card.
+
+* g10/keygen.c (ask_algo): Fix condition.  Continue the loop when
+failure.
+
+--
+
+Fixes-commit: 6022f10da39e512b5b3fed3869fd6579d954090c
+GnuPG-bug-id: 7309, 7457
+Signed-off-by: NIIBE Yutaka <gni...@fsij.org>
+(cherry picked from commit cc3efe9a7312b1ca2c2398e439178e0b23e857df)
+---
+ g10/keygen.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/g10/keygen.c b/g10/keygen.c
+index 9b689a9..b301db9 100644
+--- a/g10/keygen.c
++++ b/g10/keygen.c
+@@ -2483,7 +2483,7 @@ ask_algo (ctrl_t ctrl, int addmode, int *r_subkey_algo, unsigned int *r_usage,
+                   if (!keyref)
+                     continue;
+ 
+-                  if (!agent_scd_readkey (ctrl, keyref, &s_pkey, NULL))
++                  if (agent_scd_readkey (ctrl, keyref, &s_pkey, NULL))
+                     continue;
+ 
+                   algostr = pubkey_algo_string (s_pkey, &algoid);
diff --git a/debian/patches/from-upstream/0002-gpgconf-Fix-reload-and-kill-of-keyboxd.patch b/debian/patches/from-upstream/0002-gpgconf-Fix-reload-and-kill-of-keyboxd.patch
new file mode 100644
index 000000000..b71c90275
--- /dev/null
+++ b/debian/patches/from-upstream/0002-gpgconf-Fix-reload-and-kill-of-keyboxd.patch
@@ -0,0 +1,38 @@
+From: Werner Koch <w...@gnupg.org>
+Date: Mon, 17 Mar 2025 10:06:54 +0100
+Subject: [PATCH 02/10] gpgconf: Fix reload and kill of keyboxd.
+
+* tools/gpgconf-comp.c (keyboxd_runtime_change): Fix order of args.
+--
+
+Fixes-commit: acaeba2dbdb9bbd68a823c671d5c3577fef5d26d
+GnuPG-bug-id: 7569
+(cherry picked from commit e212308ede8ecaa3a39ed0366db70da3edfc0ba2)
+---
+ tools/gpgconf-comp.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c
+index fb2a896..f9856ea 100644
+--- a/tools/gpgconf-comp.c
++++ b/tools/gpgconf-comp.c
+@@ -909,15 +909,15 @@ keyboxd_runtime_change (int killflag)
+   int cmdidx;
+ 
+   pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT);
+-  argv[i++] = "--no-autostart";
+-  argv[i++] = "--keyboxd";
+-  cmdidx = i;
+-  argv[i++] = killflag? "KILLKEYBOXD" : "RELOADKEYBOXD";
+   if (!gnupg_default_homedir_p ())
+     {
+       argv[i++] = "--homedir";
+       argv[i++] = gnupg_homedir ();
+     }
++  argv[i++] = "--no-autostart";
++  argv[i++] = "--keyboxd";
++  cmdidx = i;
++  argv[i++] = killflag? "KILLKEYBOXD" : "RELOADKEYBOXD";
+   argv[i] = NULL;
+   log_assert (i < DIM(argv));
+ 
diff --git a/debian/patches/from-upstream/0006-keyboxd-Searching-UpperCaseAddress.patch b/debian/patches/from-upstream/0006-keyboxd-Searching-UpperCaseAddress.patch
new file mode 100644
index 000000000..12100d960
--- /dev/null
+++ b/debian/patches/from-upstream/0006-keyboxd-Searching-UpperCaseAddress.patch
@@ -0,0 +1,67 @@
+From: NIIBE Yutaka <gni...@fsij.org>
+Date: Wed, 26 Mar 2025 14:26:54 +0900
+Subject: [PATCH 06/10] keyboxd: Searching UpperCaseAddress.
+
+* kbx/backend-sqlite.c (run_select_statement): Convert with
+ascii_strlwr when the mode is KEYDB_SEARCH_MODE_MAIL.
+
+--
+
+GnuPG-bug-id: 7576
+Signed-off-by: NIIBE Yutaka <gni...@fsij.org>
+(cherry picked from commit 0812ab2996730eecc180dceab5e7a7f0a706c467)
+---
+ kbx/backend-sqlite.c | 38 ++++++++++++++++++++++++++++----------
+ 1 file changed, 28 insertions(+), 10 deletions(-)
+
+diff --git a/kbx/backend-sqlite.c b/kbx/backend-sqlite.c
+index 50ab6f0..57613e2 100644
+--- a/kbx/backend-sqlite.c
++++ b/kbx/backend-sqlite.c
+@@ -956,18 +956,36 @@ run_select_statement (ctrl_t ctrl, be_sqlite_local_t ctx,
+                                extra, " ORDER BY p.ubid", &ctx->select_stmt);
+       if (!err)
+         {
+-          s = desc[descidx].u.name;
+-          if (s && *s == '<' && s[1])
+-            { /* It is common that the indicator for exact addrspec
+-               * search has not been removed.  We do this here.  */
+-              s++;
+-              n = strlen (s);
+-              if (n > 1 && s[n-1] == '>')
+-                n--;
++          if (desc[descidx].mode == KEYDB_SEARCH_MODE_MAIL)
++            {
++              char *mail = xtrystrdup (desc[descidx].u.name);
++
++              if (!mail)
++                err = gpg_error_from_syserror ();
++              else
++                {
++                  ascii_strlwr (mail);
++                  s = mail;
++                  if (*s == '<' && s[1])
++                    { /* It is common that the indicator for exact addrspec
++                       * search has not been removed.  We do this here.  */
++                      s++;
++                      n = strlen (s);
++                      if (n > 1 && s[n-1] == '>')
++                        n--;
++                    }
++                  else
++                    n = strlen (s);
++                  err = run_sql_bind_ntext (ctx->select_stmt, 1, s, n);
++                  xfree (mail);
++                }
+             }
+           else
+-            n = s? strlen (s):0;
+-          err = run_sql_bind_ntext (ctx->select_stmt, 1, s, n);
++            {
++              s = desc[descidx].u.name;
++              n = s? strlen (s):0;
++              err = run_sql_bind_ntext (ctx->select_stmt, 1, s, n);
++            }
+         }
+       break;
+ 
diff --git a/debian/patches/from-upstream/0007-Fix-access-to-the-bintoasc-mapping-in-the-libksba-su.patch b/debian/patches/from-upstream/0007-Fix-access-to-the-bintoasc-mapping-in-the-libksba-su.patch
new file mode 100644
index 000000000..686815bc4
--- /dev/null
+++ b/debian/patches/from-upstream/0007-Fix-access-to-the-bintoasc-mapping-in-the-libksba-su.patch
@@ -0,0 +1,33 @@
+From: Collin Funk <collin.fu...@gmail.com>
+Date: Wed, 30 Apr 2025 10:36:18 +0200
+Subject: [PATCH 07/10] Fix access to the bintoasc mapping in the libksba
+ support.
+
+* common/ksba-io-support.c (has_only_base64): Use memchr since calling
+strchr on a non-NUL terminated string is undefined behavior.
+
+--
+
+Signed-off-by: Collin Funk <collin.fu...@gmail.com>
+
+This patch has been stripped from Colin's original patch because this
+is not just about a warning but an actual bug.  That bug was
+introduced in 2003 by me.  - wk
+(cherry picked from commit 33d418fd34b55bdd30b0dc1a4ab2fe41cc6d2170)
+---
+ common/ksba-io-support.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/common/ksba-io-support.c b/common/ksba-io-support.c
+index 352485f..ff5e495 100644
+--- a/common/ksba-io-support.c
++++ b/common/ksba-io-support.c
+@@ -174,7 +174,7 @@ has_only_base64 (const unsigned char *line, int linelen)
+     {
+       if (*line == '\n' || (linelen > 1 && *line == '\r' && line[1] == '\n'))
+           break;
+-      if ( !strchr (bintoasc, *line) )
++      if ( !memchr (bintoasc, *line, sizeof (bintoasc)) )
+         return 0;
+     }
+   return 1;  /* yes */
diff --git a/debian/patches/from-upstream/0009-common-Fix-logic-for-certain-recsel-conditions.patch b/debian/patches/from-upstream/0009-common-Fix-logic-for-certain-recsel-conditions.patch
new file mode 100644
index 000000000..fd7ded3ef
--- /dev/null
+++ b/debian/patches/from-upstream/0009-common-Fix-logic-for-certain-recsel-conditions.patch
@@ -0,0 +1,70 @@
+From: Werner Koch <w...@gnupg.org>
+Date: Wed, 30 Apr 2025 15:13:11 +0200
+Subject: [PATCH 09/10] common: Fix logic for certain recsel conditions.
+
+* common/recsel.c (recsel_select): Change processing of NULL values.
+* common/t-recsel.c (run_test_2): Adjust for this change.  Also a type
+fix for s/"letter"/"letters"/.
+--
+
+The getval function may return NULL which indicates that there is no
+useful value available.  For example because the propertyname is not
+defined for some external context (e.g. in gpg the packet type).  This
+also required to fix the test for boolean tests of a non existing
+property name.
+
+Reported-by: shniubobo at gnupg-users on 2025-04-18.
+(cherry picked from commit 3ea8cab6a40485ff9748a77bca3b26c63a788449)
+---
+ common/recsel.c   | 6 +++++-
+ common/t-recsel.c | 6 +++---
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/common/recsel.c b/common/recsel.c
+index fa3deba..3be491c 100644
+--- a/common/recsel.c
++++ b/common/recsel.c
+@@ -506,7 +506,11 @@ recsel_select (recsel_expr_t selector,
+     {
+       value = getval? getval (cookie, se->name) : NULL;
+       if (!value)
+-        value = "";
++        {
++          se = se->next;
++          result = 0;
++          continue;
++        }
+ 
+       if (!*value)
+         {
+diff --git a/common/t-recsel.c b/common/t-recsel.c
+index 2d5a95d..72a2596 100644
+--- a/common/t-recsel.c
++++ b/common/t-recsel.c
+@@ -306,7 +306,7 @@ run_test_2 (void)
+ 
+   FREEEXPR();
+   ADDEXPR ("nothing -z");
+-  if (!recsel_select (se, test_2_getval, NULL))
++  if (recsel_select (se, test_2_getval, NULL))
+     fail (0, 0);
+   FREEEXPR();
+   ADDEXPR ("nothing -n");
+@@ -334,7 +334,7 @@ run_test_2 (void)
+ 
+   FREEEXPR();
+   ADDEXPR ("nothing -f");
+-  if (!recsel_select (se, test_2_getval, NULL))
++  if (recsel_select (se, test_2_getval, NULL))
+     fail (0, 0);
+   FREEEXPR();
+   ADDEXPR ("nothing -t");
+@@ -369,7 +369,7 @@ run_test_2 (void)
+     fail (0, 0);
+ 
+   FREEEXPR();
+-  ADDEXPR ("letter -f");
++  ADDEXPR ("letters -f");
+   if (!recsel_select (se, test_2_getval, NULL))
+     fail (0, 0);
+   FREEEXPR();
diff --git a/debian/patches/from-upstream/gpg-Fix-another-regression-due-to-the-T7547-fix.patch b/debian/patches/from-upstream/gpg-Fix-another-regression-due-to-the-T7547-fix.patch
new file mode 100644
index 000000000..e2c127916
--- /dev/null
+++ b/debian/patches/from-upstream/gpg-Fix-another-regression-due-to-the-T7547-fix.patch
@@ -0,0 +1,45 @@
+From: Werner Koch <w...@gnupg.org>
+Date: Fri, 2 May 2025 11:11:05 +0200
+Subject: gpg: Fix another regression due to the T7547 fix.
+
+* g10/getkey.c (get_pubkey_for_sig): Keep a requested
+PUBKEY_USAGE_CERT.
+(finish_lookup): For correctness in future use cases allow
+PUBKEY_USAGE_CERT to also trigger verify mode.
+--
+
+The case here was that a cert-only primary key was removed with
+export-clean.
+
+GnuPG-bug-id: 7583
+(cherry picked from commit 9b7c067717d815e16f9ea3cec88bca09a6cce7cb)
+---
+ g10/getkey.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/g10/getkey.c b/g10/getkey.c
+index e326406..ae0e002 100644
+--- a/g10/getkey.c
++++ b/g10/getkey.c
+@@ -341,8 +341,10 @@ get_pubkey_for_sig (ctrl_t ctrl, PKT_public_key *pk, PKT_signature *sig,
+   /* Make sure to request only keys cabable of signing.  This makes
+    * sure that a subkey w/o a valid backsig or with bad usage flags
+    * will be skipped.  We also request the verification mode so that
+-   * expired and reoked keys are returned.  */
+-  pk->req_usage = (PUBKEY_USAGE_SIG | PUBKEY_USAGE_VERIFY);
++   * expired and revoked keys are returned.  We keep only a requested
++   * CERT usage in PK for the sake of key signatures.  */
++  pk->req_usage = (PUBKEY_USAGE_SIG | PUBKEY_USAGE_VERIFY
++                   | (pk->req_usage & PUBKEY_USAGE_CERT));
+ 
+   /* First try the ISSUER_FPR info.  */
+   fpr = issuer_fpr_raw (sig, &fprlen);
+@@ -3736,7 +3738,7 @@ finish_lookup (kbnode_t keyblock, unsigned int req_usage, int want_exact,
+   /* The verify mode is used to change the behaviour so that we can
+    * return an expired or revoked key for signature verification.  */
+   verify_mode = ((req_usage & PUBKEY_USAGE_VERIFY)
+-                 && (req_usage & PUBKEY_USAGE_SIG));
++                 && (req_usage & (PUBKEY_USAGE_CERT|PUBKEY_USAGE_SIG)));
+ 
+ #define USAGE_MASK  (PUBKEY_USAGE_SIG|PUBKEY_USAGE_ENC|PUBKEY_USAGE_CERT)
+   req_usage &= USAGE_MASK;
diff --git a/debian/patches/series b/debian/patches/series
index 1c57afc95..cda8c045a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -46,5 +46,11 @@ from-upstream/gpg-Remove-a-signature-check-function-wrapper.patch
 from-upstream/gpg-Fix-a-verification-DoS-due-to-a-malicious-subkey-in-t.patch
 from-upstream/gpg-Fix-regression-for-the-recent-malicious-subkey-DoS-fi.patch
 from-upstream/gpg-Fix-double-free-of-internal-data.patch
 debian-packaging/no-keyboxd.patch
 gpgv-Avoid-Assuan-and-NPth-dependencies.patch
+from-upstream/0001-gpg-Fix-key-generation-with-existing-key-from-card.patch
+from-upstream/0002-gpgconf-Fix-reload-and-kill-of-keyboxd.patch
+from-upstream/0006-keyboxd-Searching-UpperCaseAddress.patch
+from-upstream/0007-Fix-access-to-the-bintoasc-mapping-in-the-libksba-su.patch
+from-upstream/gpg-Fix-another-regression-due-to-the-T7547-fix.patch
+from-upstream/0009-common-Fix-logic-for-certain-recsel-conditions.patch

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Hi,

On 31-05-2025 13:17, Andreas Metzler wrote:
Please unblock package gnupg2


Hint added.

Paul

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


--- End Message ---

Reply via email to