From 15caf6240e0336685494ae36405b60408e83ed72 Mon Sep 17 00:00:00 2001
From: Stefan Metzmacher <metze@samba.org>
Date: Wed, 30 Nov 2022 09:39:19 +0100
Subject: [PATCH 52/54] CVE-2022-37966 s4:kdc: apply restrictions of "kdc
 supported enctypes"

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15237

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit cca3c024fc514bee79bb60a686e470605cc98d6f)

Conflict: NA
Reference: https://attachments.samba.org/attachment.cgi?id=17695
---
 source4/kdc/db-glue.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c
index 4cdbdf9a325b..83d5c903235a 100644
--- a/source4/kdc/db-glue.c
+++ b/source4/kdc/db-glue.c
@@ -1079,7 +1079,11 @@ static krb5_error_code samba_kdc_message2entry(krb5_context context,
 	 * but effectively restricted by kdc_enctypes
 	 */
 	uint32_t domain_enctypes = ENC_RC4_HMAC_MD5 | ENC_RSA_MD5 | ENC_CRC32;
-	uint32_t kdc_enctypes = ENC_ALL_TYPES;
+	uint32_t config_kdc_enctypes = lpcfg_kdc_supported_enctypes(lp_ctx);
+	uint32_t kdc_enctypes =
+		config_kdc_enctypes != 0 ?
+		config_kdc_enctypes :
+		ENC_ALL_TYPES;
 	const char *samAccountName = ldb_msg_find_attr_as_string(msg, "samAccountName", NULL);
 
 	ZERO_STRUCTP(entry);
@@ -1665,7 +1669,11 @@ static krb5_error_code samba_kdc_trust_message2entry(krb5_context context,
 	uint32_t supported_enctypes = ENC_RC4_HMAC_MD5;
 	uint32_t pa_supported_enctypes;
 	uint32_t supported_session_etypes;
-	uint32_t kdc_enctypes = ENC_ALL_TYPES;
+	uint32_t config_kdc_enctypes = lpcfg_kdc_supported_enctypes(lp_ctx);
+	uint32_t kdc_enctypes =
+		config_kdc_enctypes != 0 ?
+		config_kdc_enctypes :
+		ENC_ALL_TYPES;
 	struct lsa_TrustDomainInfoInfoEx *tdo = NULL;
 	NTSTATUS status;
 
-- 
2.34.1
