]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Check cross-realm TGT name for RBCD requests
authorIsaac Boukris <iboukris@gmail.com>
Sun, 12 Jan 2020 16:32:09 +0000 (17:32 +0100)
committerGreg Hudson <ghudson@mit.edu>
Mon, 13 Jan 2020 17:28:24 +0000 (12:28 -0500)
ticket: 8865 (new)
tags: pullup
target_version: 1.18

src/kdc/kdc_util.c

index d0fd5d7e1f70869aec8a88533af583ec85700572..221bde1dd2a6403b445e9740e318ed82fbbbf620 100644 (file)
@@ -1699,11 +1699,13 @@ check_rbcd_policy(kdc_realm_t *kdc_active_realm, unsigned int flags,
     if (isflagset(flags, KRB5_KDB_FLAG_CROSS_REALM)) {
         /*
          * Check that the proxy server is local, that the second ticket is a
-         * cross realm TGT, and that the second ticket client matches the
-         * header ticket client.
+         * cross-realm TGT for us, and that the second ticket client matches
+         * the header ticket client.
          */
         if (isflagset(flags, KRB5_KDB_FLAG_ISSUING_REFERRAL) ||
             !is_cross_tgs_principal(stkt_server->princ) ||
+            !krb5_principal_compare_any_realm(kdc_context, stkt_server->princ,
+                                              tgs_server) ||
             !krb5_principal_compare(kdc_context, stkt_client_princ,
                                     header_client_princ)) {
             return KRB5KDC_ERR_BADOPTION;