CVE-2022-37966 s4:kdc: apply restrictions of "kdc supported enctypes"
authorStefan Metzmacher <metze@samba.org>
Wed, 30 Nov 2022 08:39:19 +0000 (09:39 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 13 Dec 2022 23:48:49 +0000 (00:48 +0100)
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)

source4/kdc/db-glue.c

index ae32634735d2fc35f69757c97ac4b7592638ac9f..7eab2c3314939b102e9191462715ffbcc1ebfe5c 100644 (file)
@@ -970,7 +970,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);
        computer_val.data = discard_const_p(uint8_t,"computer");
        computer_val.length = strlen((const char *)computer_val.data);
@@ -1490,7 +1494,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;