diff mbox series

[meta-oe] krb5: upgrade 1.17.2 -> 1.20.1

Message ID 20221230014607.703918-1-yi.zhao@windriver.com
State Under Review
Headers show
Series [meta-oe] krb5: upgrade 1.17.2 -> 1.20.1 | expand

Commit Message

Yi Zhao Dec. 30, 2022, 1:46 a.m. UTC
Release Notes:
https://web.mit.edu/kerberos/krb5-1.20/krb5-1.20.1.html

License-Update: Update AES algorithm copyright [1]
                Update copyright years [2]

[1] https://github.com/krb5/krb5/commit/cb5f190056ef4d123c5fe5d4923982b830288438
[2] https://github.com/krb5/krb5/commit/f1535bf6b47e8dc03d69fcfb98e798546ff7c272

* Update PACKAGECONFIG[keyutils] and drop the local patch.
* Drop backport CVE patches.
* Inherit pkgconfig bbclass to find com_err library correctly.
* Drop --without-tcl option as it has been removed upstream.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 ...ameter-to-disable-keyutils-detection.patch |  32 -----
 .../krb5/krb5/CVE-2021-36222.patch            | 121 ------------------
 .../krb5/krb5/CVE-2021-37750.patch            |  53 --------
 .../krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb}   |  19 ++-
 4 files changed, 9 insertions(+), 216 deletions(-)
 delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
 delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
 delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
 rename meta-oe/recipes-connectivity/krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb} (93%)

Comments

Khem Raj Dec. 30, 2022, 8:49 p.m. UTC | #1
This regresses samba [1] [2]. Please look into that as well and
propose a fix along with this.

[1] https://errors.yoctoproject.org/Errors/Details/685903/
[2] https://errors.yoctoproject.org/Errors/Details/685873/

On Thu, Dec 29, 2022 at 5:46 PM Yi Zhao <yi.zhao@eng.windriver.com> wrote:
>
> Release Notes:
> https://web.mit.edu/kerberos/krb5-1.20/krb5-1.20.1.html
>
> License-Update: Update AES algorithm copyright [1]
>                 Update copyright years [2]
>
> [1] https://github.com/krb5/krb5/commit/cb5f190056ef4d123c5fe5d4923982b830288438
> [2] https://github.com/krb5/krb5/commit/f1535bf6b47e8dc03d69fcfb98e798546ff7c272
>
> * Update PACKAGECONFIG[keyutils] and drop the local patch.
> * Drop backport CVE patches.
> * Inherit pkgconfig bbclass to find com_err library correctly.
> * Drop --without-tcl option as it has been removed upstream.
>
> Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
> ---
>  ...ameter-to-disable-keyutils-detection.patch |  32 -----
>  .../krb5/krb5/CVE-2021-36222.patch            | 121 ------------------
>  .../krb5/krb5/CVE-2021-37750.patch            |  53 --------
>  .../krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb}   |  19 ++-
>  4 files changed, 9 insertions(+), 216 deletions(-)
>  delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
>  delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
>  delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
>  rename meta-oe/recipes-connectivity/krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb} (93%)
>
> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
> deleted file mode 100644
> index cbd5d71fd..000000000
> --- a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001
> -From: Martin Jansa <Martin.Jansa@gmail.com>
> -Date: Tue, 1 Oct 2013 22:22:57 +0200
> -Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
> -
> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> -
> ----
> - aclocal.m4 | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/aclocal.m4 b/aclocal.m4
> -index d6d1279..80ce604 100644
> ---- a/aclocal.m4
> -+++ b/aclocal.m4
> -@@ -1679,12 +1679,16 @@ fi
> - dnl
> - dnl If libkeyutils exists (on Linux) include it and use keyring ccache
> - AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
> -+AC_ARG_ENABLE([keyutils],
> -+AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes)
> -+if test "$enable_keyutils" = yes; then
> -   AC_CHECK_HEADERS([keyutils.h],
> -     AC_CHECK_LIB(keyutils, add_key,
> -       [dnl Pre-reqs were found
> -        AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled])
> -        LIBS="-lkeyutils $LIBS"
> -       ]))
> -+fi
> - ])dnl
> - dnl
> - dnl If libkeyutils supports persistent keyrings, use them
> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
> deleted file mode 100644
> index fee6e64c1..000000000
> --- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
> +++ /dev/null
> @@ -1,121 +0,0 @@
> -From fc98f520caefff2e5ee9a0026fdf5109944b3562 Mon Sep 17 00:00:00 2001
> -From: Joseph Sutton <josephsutton@catalyst.net.nz>
> -Date: Wed, 7 Jul 2021 11:47:44 +1200
> -Subject: [PATCH] Fix KDC null deref on bad encrypted challenge
> -
> -The function ec_verify() in src/kdc/kdc_preauth_ec.c contains a check
> -to avoid further processing if the armor key is NULL.  However, this
> -check is bypassed by a call to k5memdup0() which overwrites retval
> -with 0 if the allocation succeeds.  If the armor key is NULL, a call
> -to krb5_c_fx_cf2_simple() will then dereference it, resulting in a
> -crash.  Add a check before the k5memdup0() call to avoid overwriting
> -retval.
> -
> -CVE-2021-36222:
> -
> -In MIT krb5 releases 1.16 and later, an unauthenticated attacker can
> -cause a null dereference in the KDC by sending a request containing a
> -PA-ENCRYPTED-CHALLENGE padata element without using FAST.
> -
> -[ghudson@mit.edu: trimmed patch; added test case; edited commit
> -message]
> -
> -ticket: 9007 (new)
> -tags: pullup
> -target_version: 1.19-next
> -target_version: 1.18-next
> -
> -CVE: CVE-2021-36222
> -
> -Upstream-Status: Backport
> -[https://github.com/krb5/krb5/commit/fc98f520caefff2e5ee9a0026fdf5109944b3562]
> -
> -Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
> ----
> - src/kdc/kdc_preauth_ec.c      |  3 ++-
> - src/tests/Makefile.in         |  1 +
> - src/tests/t_cve-2021-36222.py | 46 +++++++++++++++++++++++++++++++++++
> - 3 files changed, 49 insertions(+), 1 deletion(-)
> - create mode 100644 src/tests/t_cve-2021-36222.py
> -
> -diff --git a/src/kdc/kdc_preauth_ec.c b/src/kdc/kdc_preauth_ec.c
> -index 7e636b3f9..43a9902cc 100644
> ---- a/src/kdc/kdc_preauth_ec.c
> -+++ b/src/kdc/kdc_preauth_ec.c
> -@@ -87,7 +87,8 @@ ec_verify(krb5_context context, krb5_data *req_pkt, krb5_kdc_req *request,
> -     }
> -
> -     /* Check for a configured FAST ec auth indicator. */
> --    realmstr = k5memdup0(realm.data, realm.length, &retval);
> -+    if (retval == 0)
> -+        realmstr = k5memdup0(realm.data, realm.length, &retval);
> -     if (realmstr != NULL)
> -         retval = profile_get_string(context->profile, KRB5_CONF_REALMS,
> -                                     realmstr,
> -diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
> -index fc6fcc0c3..1a1938306 100644
> ---- a/src/tests/Makefile.in
> -+++ b/src/tests/Makefile.in
> -@@ -166,6 +166,7 @@ check-pytests: unlockiter s4u2self
> -       $(RUNPYTEST) $(srcdir)/t_cve-2012-1015.py $(PYTESTFLAGS)
> -       $(RUNPYTEST) $(srcdir)/t_cve-2013-1416.py $(PYTESTFLAGS)
> -       $(RUNPYTEST) $(srcdir)/t_cve-2013-1417.py $(PYTESTFLAGS)
> -+      $(RUNPYTEST) $(srcdir)/t_cve-2021-36222.py $(PYTESTFLAGS)
> -       $(RM) au.log
> -       $(RUNPYTEST) $(srcdir)/t_audit.py $(PYTESTFLAGS)
> -       $(RUNPYTEST) $(srcdir)/jsonwalker.py -d $(srcdir)/au_dict.json \
> -diff --git a/src/tests/t_cve-2021-36222.py b/src/tests/t_cve-2021-36222.py
> -new file mode 100644
> -index 000000000..57e04993b
> ---- /dev/null
> -+++ b/src/tests/t_cve-2021-36222.py
> -@@ -0,0 +1,46 @@
> -+import socket
> -+from k5test import *
> -+
> -+realm = K5Realm()
> -+
> -+# CVE-2021-36222 KDC null dereference on encrypted challenge preauth
> -+# without FAST
> -+
> -+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
> -+a = (hostname, realm.portbase)
> -+
> -+m = ('6A81A0' '30819D'          # [APPLICATION 10] SEQUENCE
> -+     'A103' '0201' '05'         #  [1] pvno = 5
> -+     'A203' '0201' '0A'         #  [2] msg-type = 10
> -+     'A30E' '300C'              #  [3] padata = SEQUENCE OF
> -+     '300A'                     #   SEQUENCE
> -+     'A104' '0202' '008A'       #    [1] padata-type = PA-ENCRYPTED-CHALLENGE
> -+     'A202' '0400'              #    [2] padata-value = ""
> -+     'A48180' '307E'            #  [4] req-body = SEQUENCE
> -+     'A007' '0305' '0000000000' #   [0] kdc-options = 0
> -+     'A120' '301E'              #   [1] cname = SEQUENCE
> -+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
> -+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
> -+     '1B06' '6B7262746774'      #     krbtgt
> -+     '1B0B' '4B5242544553542E434F4D'
> -+                                #     KRBTEST.COM
> -+     'A20D' '1B0B' '4B5242544553542E434F4D'
> -+                                #   [2] realm = KRBTEST.COM
> -+     'A320' '301E'              #   [3] sname = SEQUENCE
> -+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
> -+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
> -+     '1B06' '6B7262746774'      #     krbtgt
> -+     '1B0B' '4B5242544553542E434F4D'
> -+                                #     KRBTEST.COM
> -+     'A511' '180F' '31393934303631303036303331375A'
> -+                                #   [5] till = 19940610060317Z
> -+     'A703' '0201' '00'         #   [7] nonce = 0
> -+     'A808' '3006'              #   [8] etype = SEQUENCE OF
> -+     '020112' '020111')         #    aes256-cts aes128-cts
> -+
> -+s.sendto(bytes.fromhex(m), a)
> -+
> -+# Make sure kinit still works.
> -+realm.kinit(realm.user_princ, password('user'))
> -+
> -+success('CVE-2021-36222 regression test')
> ---
> -2.25.1
> -
> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
> deleted file mode 100644
> index c67bca32e..000000000
> --- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -From b3999be7ab59a5af4b2f1042ce0d6b03ecb17d4e Mon Sep 17 00:00:00 2001
> -From: Greg Hudson <ghudson@mit.edu>
> -Date: Tue, 3 Aug 2021 01:15:27 -0400
> -Subject: [PATCH] Fix KDC null deref on TGS inner body null server
> -
> -After the KDC decodes a FAST inner body, it does not check for a null
> -server.  Prior to commit 39548a5b17bbda9eeb63625a201cfd19b9de1c5b this
> -would typically result in an error from krb5_unparse_name(), but with
> -the addition of get_local_tgt() it results in a null dereference.  Add
> -a null check.
> -
> -Reported by Joseph Sutton of Catalyst.
> -
> -CVE-2021-37750:
> -
> -In MIT krb5 releases 1.14 and later, an authenticated attacker can
> -cause a null dereference in the KDC by sending a FAST TGS request with
> -no server field.
> -
> -ticket: 9008 (new)
> -tags: pullup
> -target_version: 1.19-next
> -target_version: 1.18-next
> -
> -CVE: CVE-2021-37750
> -
> -Upstream-Status: Backport
> -[https://github.com/krb5/krb5/commit/d775c95af7606a51bf79547a94fa52ddd1cb7f49]
> -
> -Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
> ----
> - src/kdc/do_tgs_req.c | 5 +++++
> - 1 file changed, 5 insertions(+)
> -
> -diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
> -index 587342a..622b48f 100644
> ---- a/src/kdc/do_tgs_req.c
> -+++ b/src/kdc/do_tgs_req.c
> -@@ -201,6 +201,11 @@ process_tgs_req(krb5_kdc_req *request, krb5_data *pkt,
> -         status = "FIND_FAST";
> -         goto cleanup;
> -     }
> -+    if (sprinc == NULL) {
> -+        status = "NULL_SERVER";
> -+        errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN;
> -+        goto cleanup;
> -+    }
> -
> -     errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server,
> -                             &local_tgt, &local_tgt_storage);
> ---
> -2.17.1
> -
> diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
> similarity index 93%
> rename from meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
> rename to meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
> index 6e0b2fdac..2221000e3 100644
> --- a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
> +++ b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
> @@ -14,14 +14,12 @@ DESCRIPTION = "Kerberos is a system for authenticating users and services on a n
>  HOMEPAGE = "http://web.mit.edu/Kerberos/"
>  SECTION = "console/network"
>  LICENSE = "MIT"
> -LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=dd4d0ad4c5e98abb58aa0d312f276791"
> -DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
> +LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=1d31018dba5a0ef195eb426a1e61f02e"
>
> -inherit autotools-brokensep binconfig perlnative systemd update-rc.d
> +inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig
>
>  SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
>  SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
> -           file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
>             file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
>             file://crosscompile_nm.patch \
>             file://etc/init.d/krb5-kdc \
> @@ -30,26 +28,26 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
>             file://etc/default/krb5-admin-server \
>             file://krb5-kdc.service \
>             file://krb5-admin-server.service \
> -           file://CVE-2021-36222.patch;striplevel=2 \
> -           file://CVE-2021-37750.patch;striplevel=2 \
>  "
> -SRC_URI[md5sum] = "aa4337fffa3b61f22dbd0167f708818f"
> -SRC_URI[sha256sum] = "1a4bba94df92f6d39a197a10687653e8bfbc9a2076e129f6eb92766974f86134"
> +SRC_URI[md5sum] = "73f5780e7b587ccd8b8cfc10c965a686"
> +SRC_URI[sha256sum] = "704aed49b19eb5a7178b34b2873620ec299db08752d6a8574f95d41879ab8851"
>
>  CVE_PRODUCT = "kerberos"
>  CVE_VERSION = "5-${PV}"
>
>  S = "${WORKDIR}/${BP}/src"
>
> +DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
> +
>  PACKAGECONFIG ??= "pkinit"
>  PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
>  PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
> -PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
> +PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils"
>  PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
>  PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
>  PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit"
>
> -EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
> +EXTRA_OECONF += "--with-system-et --disable-rpath"
>  CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
>                    ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
>                    ac_cv_file__etc_TIMEZONE=no"
> @@ -85,6 +83,7 @@ do_install:append() {
>
>          echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
>      fi
> +
>      if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
>          install -d ${D}${sysconfdir}/tmpfiles.d
>          echo "d /run/krb5kdc - - - -" \
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#100305): https://lists.openembedded.org/g/openembedded-devel/message/100305
> Mute This Topic: https://lists.openembedded.org/mt/95947642/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Yi Zhao Jan. 1, 2023, 5:08 a.m. UTC | #2
On 12/31/22 04:49, Khem Raj wrote:
> This regresses samba [1] [2]. Please look into that as well and
> propose a fix along with this.
>
> [1] https://errors.yoctoproject.org/Errors/Details/685903/
> [2] https://errors.yoctoproject.org/Errors/Details/685873/


Thanks. I will send a patch to upgrade samba.


//Yi

>
> On Thu, Dec 29, 2022 at 5:46 PM Yi Zhao <yi.zhao@eng.windriver.com> wrote:
>> Release Notes:
>> https://web.mit.edu/kerberos/krb5-1.20/krb5-1.20.1.html
>>
>> License-Update: Update AES algorithm copyright [1]
>>                  Update copyright years [2]
>>
>> [1] https://github.com/krb5/krb5/commit/cb5f190056ef4d123c5fe5d4923982b830288438
>> [2] https://github.com/krb5/krb5/commit/f1535bf6b47e8dc03d69fcfb98e798546ff7c272
>>
>> * Update PACKAGECONFIG[keyutils] and drop the local patch.
>> * Drop backport CVE patches.
>> * Inherit pkgconfig bbclass to find com_err library correctly.
>> * Drop --without-tcl option as it has been removed upstream.
>>
>> Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
>> ---
>>   ...ameter-to-disable-keyutils-detection.patch |  32 -----
>>   .../krb5/krb5/CVE-2021-36222.patch            | 121 ------------------
>>   .../krb5/krb5/CVE-2021-37750.patch            |  53 --------
>>   .../krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb}   |  19 ++-
>>   4 files changed, 9 insertions(+), 216 deletions(-)
>>   delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
>>   delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
>>   delete mode 100644 meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
>>   rename meta-oe/recipes-connectivity/krb5/{krb5_1.17.2.bb => krb5_1.20.1.bb} (93%)
>>
>> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
>> deleted file mode 100644
>> index cbd5d71fd..000000000
>> --- a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
>> +++ /dev/null
>> @@ -1,32 +0,0 @@
>> -From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001
>> -From: Martin Jansa <Martin.Jansa@gmail.com>
>> -Date: Tue, 1 Oct 2013 22:22:57 +0200
>> -Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
>> -
>> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>> -
>> ----
>> - aclocal.m4 | 4 ++++
>> - 1 file changed, 4 insertions(+)
>> -
>> -diff --git a/aclocal.m4 b/aclocal.m4
>> -index d6d1279..80ce604 100644
>> ---- a/aclocal.m4
>> -+++ b/aclocal.m4
>> -@@ -1679,12 +1679,16 @@ fi
>> - dnl
>> - dnl If libkeyutils exists (on Linux) include it and use keyring ccache
>> - AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
>> -+AC_ARG_ENABLE([keyutils],
>> -+AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes)
>> -+if test "$enable_keyutils" = yes; then
>> -   AC_CHECK_HEADERS([keyutils.h],
>> -     AC_CHECK_LIB(keyutils, add_key,
>> -       [dnl Pre-reqs were found
>> -        AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled])
>> -        LIBS="-lkeyutils $LIBS"
>> -       ]))
>> -+fi
>> - ])dnl
>> - dnl
>> - dnl If libkeyutils supports persistent keyrings, use them
>> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
>> deleted file mode 100644
>> index fee6e64c1..000000000
>> --- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
>> +++ /dev/null
>> @@ -1,121 +0,0 @@
>> -From fc98f520caefff2e5ee9a0026fdf5109944b3562 Mon Sep 17 00:00:00 2001
>> -From: Joseph Sutton <josephsutton@catalyst.net.nz>
>> -Date: Wed, 7 Jul 2021 11:47:44 +1200
>> -Subject: [PATCH] Fix KDC null deref on bad encrypted challenge
>> -
>> -The function ec_verify() in src/kdc/kdc_preauth_ec.c contains a check
>> -to avoid further processing if the armor key is NULL.  However, this
>> -check is bypassed by a call to k5memdup0() which overwrites retval
>> -with 0 if the allocation succeeds.  If the armor key is NULL, a call
>> -to krb5_c_fx_cf2_simple() will then dereference it, resulting in a
>> -crash.  Add a check before the k5memdup0() call to avoid overwriting
>> -retval.
>> -
>> -CVE-2021-36222:
>> -
>> -In MIT krb5 releases 1.16 and later, an unauthenticated attacker can
>> -cause a null dereference in the KDC by sending a request containing a
>> -PA-ENCRYPTED-CHALLENGE padata element without using FAST.
>> -
>> -[ghudson@mit.edu: trimmed patch; added test case; edited commit
>> -message]
>> -
>> -ticket: 9007 (new)
>> -tags: pullup
>> -target_version: 1.19-next
>> -target_version: 1.18-next
>> -
>> -CVE: CVE-2021-36222
>> -
>> -Upstream-Status: Backport
>> -[https://github.com/krb5/krb5/commit/fc98f520caefff2e5ee9a0026fdf5109944b3562]
>> -
>> -Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
>> ----
>> - src/kdc/kdc_preauth_ec.c      |  3 ++-
>> - src/tests/Makefile.in         |  1 +
>> - src/tests/t_cve-2021-36222.py | 46 +++++++++++++++++++++++++++++++++++
>> - 3 files changed, 49 insertions(+), 1 deletion(-)
>> - create mode 100644 src/tests/t_cve-2021-36222.py
>> -
>> -diff --git a/src/kdc/kdc_preauth_ec.c b/src/kdc/kdc_preauth_ec.c
>> -index 7e636b3f9..43a9902cc 100644
>> ---- a/src/kdc/kdc_preauth_ec.c
>> -+++ b/src/kdc/kdc_preauth_ec.c
>> -@@ -87,7 +87,8 @@ ec_verify(krb5_context context, krb5_data *req_pkt, krb5_kdc_req *request,
>> -     }
>> -
>> -     /* Check for a configured FAST ec auth indicator. */
>> --    realmstr = k5memdup0(realm.data, realm.length, &retval);
>> -+    if (retval == 0)
>> -+        realmstr = k5memdup0(realm.data, realm.length, &retval);
>> -     if (realmstr != NULL)
>> -         retval = profile_get_string(context->profile, KRB5_CONF_REALMS,
>> -                                     realmstr,
>> -diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
>> -index fc6fcc0c3..1a1938306 100644
>> ---- a/src/tests/Makefile.in
>> -+++ b/src/tests/Makefile.in
>> -@@ -166,6 +166,7 @@ check-pytests: unlockiter s4u2self
>> -       $(RUNPYTEST) $(srcdir)/t_cve-2012-1015.py $(PYTESTFLAGS)
>> -       $(RUNPYTEST) $(srcdir)/t_cve-2013-1416.py $(PYTESTFLAGS)
>> -       $(RUNPYTEST) $(srcdir)/t_cve-2013-1417.py $(PYTESTFLAGS)
>> -+      $(RUNPYTEST) $(srcdir)/t_cve-2021-36222.py $(PYTESTFLAGS)
>> -       $(RM) au.log
>> -       $(RUNPYTEST) $(srcdir)/t_audit.py $(PYTESTFLAGS)
>> -       $(RUNPYTEST) $(srcdir)/jsonwalker.py -d $(srcdir)/au_dict.json \
>> -diff --git a/src/tests/t_cve-2021-36222.py b/src/tests/t_cve-2021-36222.py
>> -new file mode 100644
>> -index 000000000..57e04993b
>> ---- /dev/null
>> -+++ b/src/tests/t_cve-2021-36222.py
>> -@@ -0,0 +1,46 @@
>> -+import socket
>> -+from k5test import *
>> -+
>> -+realm = K5Realm()
>> -+
>> -+# CVE-2021-36222 KDC null dereference on encrypted challenge preauth
>> -+# without FAST
>> -+
>> -+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>> -+a = (hostname, realm.portbase)
>> -+
>> -+m = ('6A81A0' '30819D'          # [APPLICATION 10] SEQUENCE
>> -+     'A103' '0201' '05'         #  [1] pvno = 5
>> -+     'A203' '0201' '0A'         #  [2] msg-type = 10
>> -+     'A30E' '300C'              #  [3] padata = SEQUENCE OF
>> -+     '300A'                     #   SEQUENCE
>> -+     'A104' '0202' '008A'       #    [1] padata-type = PA-ENCRYPTED-CHALLENGE
>> -+     'A202' '0400'              #    [2] padata-value = ""
>> -+     'A48180' '307E'            #  [4] req-body = SEQUENCE
>> -+     'A007' '0305' '0000000000' #   [0] kdc-options = 0
>> -+     'A120' '301E'              #   [1] cname = SEQUENCE
>> -+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
>> -+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
>> -+     '1B06' '6B7262746774'      #     krbtgt
>> -+     '1B0B' '4B5242544553542E434F4D'
>> -+                                #     KRBTEST.COM
>> -+     'A20D' '1B0B' '4B5242544553542E434F4D'
>> -+                                #   [2] realm = KRBTEST.COM
>> -+     'A320' '301E'              #   [3] sname = SEQUENCE
>> -+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
>> -+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
>> -+     '1B06' '6B7262746774'      #     krbtgt
>> -+     '1B0B' '4B5242544553542E434F4D'
>> -+                                #     KRBTEST.COM
>> -+     'A511' '180F' '31393934303631303036303331375A'
>> -+                                #   [5] till = 19940610060317Z
>> -+     'A703' '0201' '00'         #   [7] nonce = 0
>> -+     'A808' '3006'              #   [8] etype = SEQUENCE OF
>> -+     '020112' '020111')         #    aes256-cts aes128-cts
>> -+
>> -+s.sendto(bytes.fromhex(m), a)
>> -+
>> -+# Make sure kinit still works.
>> -+realm.kinit(realm.user_princ, password('user'))
>> -+
>> -+success('CVE-2021-36222 regression test')
>> ---
>> -2.25.1
>> -
>> diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
>> deleted file mode 100644
>> index c67bca32e..000000000
>> --- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
>> +++ /dev/null
>> @@ -1,53 +0,0 @@
>> -From b3999be7ab59a5af4b2f1042ce0d6b03ecb17d4e Mon Sep 17 00:00:00 2001
>> -From: Greg Hudson <ghudson@mit.edu>
>> -Date: Tue, 3 Aug 2021 01:15:27 -0400
>> -Subject: [PATCH] Fix KDC null deref on TGS inner body null server
>> -
>> -After the KDC decodes a FAST inner body, it does not check for a null
>> -server.  Prior to commit 39548a5b17bbda9eeb63625a201cfd19b9de1c5b this
>> -would typically result in an error from krb5_unparse_name(), but with
>> -the addition of get_local_tgt() it results in a null dereference.  Add
>> -a null check.
>> -
>> -Reported by Joseph Sutton of Catalyst.
>> -
>> -CVE-2021-37750:
>> -
>> -In MIT krb5 releases 1.14 and later, an authenticated attacker can
>> -cause a null dereference in the KDC by sending a FAST TGS request with
>> -no server field.
>> -
>> -ticket: 9008 (new)
>> -tags: pullup
>> -target_version: 1.19-next
>> -target_version: 1.18-next
>> -
>> -CVE: CVE-2021-37750
>> -
>> -Upstream-Status: Backport
>> -[https://github.com/krb5/krb5/commit/d775c95af7606a51bf79547a94fa52ddd1cb7f49]
>> -
>> -Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
>> ----
>> - src/kdc/do_tgs_req.c | 5 +++++
>> - 1 file changed, 5 insertions(+)
>> -
>> -diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
>> -index 587342a..622b48f 100644
>> ---- a/src/kdc/do_tgs_req.c
>> -+++ b/src/kdc/do_tgs_req.c
>> -@@ -201,6 +201,11 @@ process_tgs_req(krb5_kdc_req *request, krb5_data *pkt,
>> -         status = "FIND_FAST";
>> -         goto cleanup;
>> -     }
>> -+    if (sprinc == NULL) {
>> -+        status = "NULL_SERVER";
>> -+        errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN;
>> -+        goto cleanup;
>> -+    }
>> -
>> -     errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server,
>> -                             &local_tgt, &local_tgt_storage);
>> ---
>> -2.17.1
>> -
>> diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
>> similarity index 93%
>> rename from meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
>> rename to meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
>> index 6e0b2fdac..2221000e3 100644
>> --- a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
>> +++ b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
>> @@ -14,14 +14,12 @@ DESCRIPTION = "Kerberos is a system for authenticating users and services on a n
>>   HOMEPAGE = "http://web.mit.edu/Kerberos/"
>>   SECTION = "console/network"
>>   LICENSE = "MIT"
>> -LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=dd4d0ad4c5e98abb58aa0d312f276791"
>> -DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
>> +LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=1d31018dba5a0ef195eb426a1e61f02e"
>>
>> -inherit autotools-brokensep binconfig perlnative systemd update-rc.d
>> +inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig
>>
>>   SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
>>   SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
>> -           file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
>>              file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
>>              file://crosscompile_nm.patch \
>>              file://etc/init.d/krb5-kdc \
>> @@ -30,26 +28,26 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
>>              file://etc/default/krb5-admin-server \
>>              file://krb5-kdc.service \
>>              file://krb5-admin-server.service \
>> -           file://CVE-2021-36222.patch;striplevel=2 \
>> -           file://CVE-2021-37750.patch;striplevel=2 \
>>   "
>> -SRC_URI[md5sum] = "aa4337fffa3b61f22dbd0167f708818f"
>> -SRC_URI[sha256sum] = "1a4bba94df92f6d39a197a10687653e8bfbc9a2076e129f6eb92766974f86134"
>> +SRC_URI[md5sum] = "73f5780e7b587ccd8b8cfc10c965a686"
>> +SRC_URI[sha256sum] = "704aed49b19eb5a7178b34b2873620ec299db08752d6a8574f95d41879ab8851"
>>
>>   CVE_PRODUCT = "kerberos"
>>   CVE_VERSION = "5-${PV}"
>>
>>   S = "${WORKDIR}/${BP}/src"
>>
>> +DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
>> +
>>   PACKAGECONFIG ??= "pkinit"
>>   PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
>>   PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
>> -PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
>> +PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils"
>>   PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
>>   PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
>>   PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit"
>>
>> -EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
>> +EXTRA_OECONF += "--with-system-et --disable-rpath"
>>   CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
>>                     ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
>>                     ac_cv_file__etc_TIMEZONE=no"
>> @@ -85,6 +83,7 @@ do_install:append() {
>>
>>           echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
>>       fi
>> +
>>       if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
>>           install -d ${D}${sysconfdir}/tmpfiles.d
>>           echo "d /run/krb5kdc - - - -" \
>> --
>> 2.25.1
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#100305): https://lists.openembedded.org/g/openembedded-devel/message/100305
>> Mute This Topic: https://lists.openembedded.org/mt/95947642/1997914
>> Group Owner: openembedded-devel+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
diff mbox series

Patch

diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
deleted file mode 100644
index cbd5d71fd..000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
+++ /dev/null
@@ -1,32 +0,0 @@ 
-From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 1 Oct 2013 22:22:57 +0200
-Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
- aclocal.m4 | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index d6d1279..80ce604 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1679,12 +1679,16 @@ fi
- dnl
- dnl If libkeyutils exists (on Linux) include it and use keyring ccache
- AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
-+AC_ARG_ENABLE([keyutils],
-+AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes)
-+if test "$enable_keyutils" = yes; then
-   AC_CHECK_HEADERS([keyutils.h],
-     AC_CHECK_LIB(keyutils, add_key, 
-       [dnl Pre-reqs were found
-        AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled])
-        LIBS="-lkeyutils $LIBS"
-       ]))
-+fi
- ])dnl
- dnl
- dnl If libkeyutils supports persistent keyrings, use them
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
deleted file mode 100644
index fee6e64c1..000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
+++ /dev/null
@@ -1,121 +0,0 @@ 
-From fc98f520caefff2e5ee9a0026fdf5109944b3562 Mon Sep 17 00:00:00 2001
-From: Joseph Sutton <josephsutton@catalyst.net.nz>
-Date: Wed, 7 Jul 2021 11:47:44 +1200
-Subject: [PATCH] Fix KDC null deref on bad encrypted challenge
-
-The function ec_verify() in src/kdc/kdc_preauth_ec.c contains a check
-to avoid further processing if the armor key is NULL.  However, this
-check is bypassed by a call to k5memdup0() which overwrites retval
-with 0 if the allocation succeeds.  If the armor key is NULL, a call
-to krb5_c_fx_cf2_simple() will then dereference it, resulting in a
-crash.  Add a check before the k5memdup0() call to avoid overwriting
-retval.
-
-CVE-2021-36222:
-
-In MIT krb5 releases 1.16 and later, an unauthenticated attacker can
-cause a null dereference in the KDC by sending a request containing a
-PA-ENCRYPTED-CHALLENGE padata element without using FAST.
-
-[ghudson@mit.edu: trimmed patch; added test case; edited commit
-message]
-
-ticket: 9007 (new)
-tags: pullup
-target_version: 1.19-next
-target_version: 1.18-next
-
-CVE: CVE-2021-36222
-
-Upstream-Status: Backport
-[https://github.com/krb5/krb5/commit/fc98f520caefff2e5ee9a0026fdf5109944b3562]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/kdc/kdc_preauth_ec.c      |  3 ++-
- src/tests/Makefile.in         |  1 +
- src/tests/t_cve-2021-36222.py | 46 +++++++++++++++++++++++++++++++++++
- 3 files changed, 49 insertions(+), 1 deletion(-)
- create mode 100644 src/tests/t_cve-2021-36222.py
-
-diff --git a/src/kdc/kdc_preauth_ec.c b/src/kdc/kdc_preauth_ec.c
-index 7e636b3f9..43a9902cc 100644
---- a/src/kdc/kdc_preauth_ec.c
-+++ b/src/kdc/kdc_preauth_ec.c
-@@ -87,7 +87,8 @@ ec_verify(krb5_context context, krb5_data *req_pkt, krb5_kdc_req *request,
-     }
- 
-     /* Check for a configured FAST ec auth indicator. */
--    realmstr = k5memdup0(realm.data, realm.length, &retval);
-+    if (retval == 0)
-+        realmstr = k5memdup0(realm.data, realm.length, &retval);
-     if (realmstr != NULL)
-         retval = profile_get_string(context->profile, KRB5_CONF_REALMS,
-                                     realmstr,
-diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
-index fc6fcc0c3..1a1938306 100644
---- a/src/tests/Makefile.in
-+++ b/src/tests/Makefile.in
-@@ -166,6 +166,7 @@ check-pytests: unlockiter s4u2self
- 	$(RUNPYTEST) $(srcdir)/t_cve-2012-1015.py $(PYTESTFLAGS)
- 	$(RUNPYTEST) $(srcdir)/t_cve-2013-1416.py $(PYTESTFLAGS)
- 	$(RUNPYTEST) $(srcdir)/t_cve-2013-1417.py $(PYTESTFLAGS)
-+	$(RUNPYTEST) $(srcdir)/t_cve-2021-36222.py $(PYTESTFLAGS)
- 	$(RM) au.log
- 	$(RUNPYTEST) $(srcdir)/t_audit.py $(PYTESTFLAGS)
- 	$(RUNPYTEST) $(srcdir)/jsonwalker.py -d $(srcdir)/au_dict.json \
-diff --git a/src/tests/t_cve-2021-36222.py b/src/tests/t_cve-2021-36222.py
-new file mode 100644
-index 000000000..57e04993b
---- /dev/null
-+++ b/src/tests/t_cve-2021-36222.py
-@@ -0,0 +1,46 @@
-+import socket
-+from k5test import *
-+
-+realm = K5Realm()
-+
-+# CVE-2021-36222 KDC null dereference on encrypted challenge preauth
-+# without FAST
-+
-+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-+a = (hostname, realm.portbase)
-+
-+m = ('6A81A0' '30819D'          # [APPLICATION 10] SEQUENCE
-+     'A103' '0201' '05'         #  [1] pvno = 5
-+     'A203' '0201' '0A'         #  [2] msg-type = 10
-+     'A30E' '300C'              #  [3] padata = SEQUENCE OF
-+     '300A'                     #   SEQUENCE
-+     'A104' '0202' '008A'       #    [1] padata-type = PA-ENCRYPTED-CHALLENGE
-+     'A202' '0400'              #    [2] padata-value = ""
-+     'A48180' '307E'            #  [4] req-body = SEQUENCE
-+     'A007' '0305' '0000000000' #   [0] kdc-options = 0
-+     'A120' '301E'              #   [1] cname = SEQUENCE
-+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
-+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
-+     '1B06' '6B7262746774'      #     krbtgt
-+     '1B0B' '4B5242544553542E434F4D'
-+                                #     KRBTEST.COM
-+     'A20D' '1B0B' '4B5242544553542E434F4D'
-+                                #   [2] realm = KRBTEST.COM
-+     'A320' '301E'              #   [3] sname = SEQUENCE
-+     'A003' '0201' '01'         #    [0] name-type = NT-PRINCIPAL
-+     'A117' '3015'              #    [1] name-string = SEQUENCE-OF
-+     '1B06' '6B7262746774'      #     krbtgt
-+     '1B0B' '4B5242544553542E434F4D'
-+                                #     KRBTEST.COM
-+     'A511' '180F' '31393934303631303036303331375A'
-+                                #   [5] till = 19940610060317Z
-+     'A703' '0201' '00'         #   [7] nonce = 0
-+     'A808' '3006'              #   [8] etype = SEQUENCE OF
-+     '020112' '020111')         #    aes256-cts aes128-cts
-+
-+s.sendto(bytes.fromhex(m), a)
-+
-+# Make sure kinit still works.
-+realm.kinit(realm.user_princ, password('user'))
-+
-+success('CVE-2021-36222 regression test')
--- 
-2.25.1
-
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
deleted file mode 100644
index c67bca32e..000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
+++ /dev/null
@@ -1,53 +0,0 @@ 
-From b3999be7ab59a5af4b2f1042ce0d6b03ecb17d4e Mon Sep 17 00:00:00 2001
-From: Greg Hudson <ghudson@mit.edu>
-Date: Tue, 3 Aug 2021 01:15:27 -0400
-Subject: [PATCH] Fix KDC null deref on TGS inner body null server
-
-After the KDC decodes a FAST inner body, it does not check for a null
-server.  Prior to commit 39548a5b17bbda9eeb63625a201cfd19b9de1c5b this
-would typically result in an error from krb5_unparse_name(), but with
-the addition of get_local_tgt() it results in a null dereference.  Add
-a null check.
-
-Reported by Joseph Sutton of Catalyst.
-
-CVE-2021-37750:
-
-In MIT krb5 releases 1.14 and later, an authenticated attacker can
-cause a null dereference in the KDC by sending a FAST TGS request with
-no server field.
-
-ticket: 9008 (new)
-tags: pullup
-target_version: 1.19-next
-target_version: 1.18-next
-
-CVE: CVE-2021-37750
-
-Upstream-Status: Backport
-[https://github.com/krb5/krb5/commit/d775c95af7606a51bf79547a94fa52ddd1cb7f49]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/kdc/do_tgs_req.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
-index 587342a..622b48f 100644
---- a/src/kdc/do_tgs_req.c
-+++ b/src/kdc/do_tgs_req.c
-@@ -201,6 +201,11 @@ process_tgs_req(krb5_kdc_req *request, krb5_data *pkt,
-         status = "FIND_FAST";
-         goto cleanup;
-     }
-+    if (sprinc == NULL) {
-+        status = "NULL_SERVER";
-+        errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN;
-+        goto cleanup;
-+    }
- 
-     errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server,
-                             &local_tgt, &local_tgt_storage);
--- 
-2.17.1
-
diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
similarity index 93%
rename from meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
rename to meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
index 6e0b2fdac..2221000e3 100644
--- a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
+++ b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
@@ -14,14 +14,12 @@  DESCRIPTION = "Kerberos is a system for authenticating users and services on a n
 HOMEPAGE = "http://web.mit.edu/Kerberos/"
 SECTION = "console/network"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=dd4d0ad4c5e98abb58aa0d312f276791"
-DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=1d31018dba5a0ef195eb426a1e61f02e"
 
-inherit autotools-brokensep binconfig perlnative systemd update-rc.d
+inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig
 
 SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
-           file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
            file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
            file://crosscompile_nm.patch \
            file://etc/init.d/krb5-kdc \
@@ -30,26 +28,26 @@  SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
            file://etc/default/krb5-admin-server \
            file://krb5-kdc.service \
            file://krb5-admin-server.service \
-           file://CVE-2021-36222.patch;striplevel=2 \
-           file://CVE-2021-37750.patch;striplevel=2 \
 "
-SRC_URI[md5sum] = "aa4337fffa3b61f22dbd0167f708818f"
-SRC_URI[sha256sum] = "1a4bba94df92f6d39a197a10687653e8bfbc9a2076e129f6eb92766974f86134"
+SRC_URI[md5sum] = "73f5780e7b587ccd8b8cfc10c965a686"
+SRC_URI[sha256sum] = "704aed49b19eb5a7178b34b2873620ec299db08752d6a8574f95d41879ab8851"
 
 CVE_PRODUCT = "kerberos"
 CVE_VERSION = "5-${PV}"
 
 S = "${WORKDIR}/${BP}/src"
 
+DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
+
 PACKAGECONFIG ??= "pkinit"
 PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
 PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
-PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
+PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils"
 PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
 PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
 PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit"
 
-EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
+EXTRA_OECONF += "--with-system-et --disable-rpath"
 CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
                   ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
                   ac_cv_file__etc_TIMEZONE=no"
@@ -85,6 +83,7 @@  do_install:append() {
 
         echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
     fi
+
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
         install -d ${D}${sysconfdir}/tmpfiles.d
         echo "d /run/krb5kdc - - - -" \