diff --git a/SOURCES/gnupg-2.2.20-CVE-2022-34903.patch b/SOURCES/gnupg-2.2.20-CVE-2022-34903.patch
new file mode 100644
index 0000000..0647765
--- /dev/null
+++ b/SOURCES/gnupg-2.2.20-CVE-2022-34903.patch
@@ -0,0 +1,50 @@
+From 34c649b3601383cd11dbc76221747ec16fd68e1b Mon Sep 17 00:00:00 2001
+From: Werner Koch <wk@gnupg.org>
+Date: Tue, 14 Jun 2022 11:33:27 +0200
+Subject: [PATCH GnuPG] g10: Fix garbled status messages in NOTATION_DATA
+
+* g10/cpr.c (write_status_text_and_buffer): Fix off-by-one
+--
+
+Depending on the escaping and line wrapping the computed remaining
+buffer length could be wrong.  Fixed by always using a break to
+terminate the escape detection loop.  Might have happened for all
+status lines which may wrap.
+
+GnuPG-bug-id: T6027
+---
+ g10/cpr.c | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/g10/cpr.c b/g10/cpr.c
+index 9bfdd3c34..fa8005d6f 100644
+--- a/g10/cpr.c
++++ b/g10/cpr.c
+@@ -372,20 +372,15 @@ write_status_text_and_buffer (int no, const char *string,
+             }
+           first = 0;
+         }
+-      for (esc=0, s=buffer, n=len; n && !esc; s++, n--)
++      for (esc=0, s=buffer, n=len; n; s++, n--)
+         {
+           if (*s == '%' || *(const byte*)s <= lower_limit
+               || *(const byte*)s == 127 )
+             esc = 1;
+           if (wrap && ++count > wrap)
+-            {
+-              dowrap=1;
+-              break;
+-            }
+-        }
+-      if (esc)
+-        {
+-          s--; n++;
++            dowrap=1;
++          if (esc || dowrap)
++            break;
+         }
+       if (s != buffer)
+         es_fwrite (buffer, s-buffer, 1, statusfp);
+-- 
+2.37.1
+
diff --git a/SPECS/gnupg2.spec b/SPECS/gnupg2.spec
index a26aa13..e5616e2 100644
--- a/SPECS/gnupg2.spec
+++ b/SPECS/gnupg2.spec
@@ -3,7 +3,7 @@
 Summary: Utility for secure communication and data storage
 Name:    gnupg2
 Version: 2.2.20
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 License: GPLv3+
 Source0: ftp://ftp.gnupg.org/gcrypt/%{?pre:alpha/}gnupg/gnupg-%{version}%{?pre}.tar.bz2
@@ -23,6 +23,7 @@ Patch9:  gnupg-2.1.21-large-rsa.patch
 Patch20: gnupg-2.2.18-tests-add-test-cases-for-import-without-uid.patch
 Patch21: gnupg-2.2.18-gpg-allow-import-of-previously-known-keys-even-without-UI.patch
 Patch22: gnupg-2.2.18-gpg-accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
+Patch23: gnupg-2.2.20-CVE-2022-34903.patch
 # Fixes for issues found in Coverity scan - reported upstream
 Patch30: gnupg-2.2.20-coverity.patch
 
@@ -106,6 +107,7 @@ to the base GnuPG package
 %patch20 -p1 -b .test_missing_uid
 %patch21 -p1 -b .prev_known_key
 %patch22 -p1 -b .good_revoc
+%patch23 -p1 -b .CVE-2022-34903
 
 %patch30 -p1 -b .coverity
 
@@ -220,6 +222,9 @@ make -k check
 
 
 %changelog
+* Wed Aug 03 2022 Jakub Jelen <jjelen@redhat.com> - 2.2.20-3
+- Fix CVE-2022-34903 (#2108447)
+
 * Mon May  4 2020 Tomáš Mráz <tmraz@redhat.com> - 2.2.20-2
 - fixes for issues found in Coverity scan