Nalin Dahyabhai 74a7640
commit 05c544eef3633b774ca38154ba4c2bf3416b471b
Nalin Dahyabhai 74a7640
Author: Tom Yu <tlyu@mit.edu>
Nalin Dahyabhai 74a7640
Date:   Mon Nov 4 15:33:09 2013 -0500
Nalin Dahyabhai 74a7640
Nalin Dahyabhai 74a7640
    Multi-realm KDC null deref [CVE-2013-1418]
Nalin Dahyabhai 74a7640
    
Nalin Dahyabhai 74a7640
    If a KDC serves multiple realms, certain requests can cause
Nalin Dahyabhai 74a7640
    setup_server_realm() to dereference a null pointer, crashing the KDC.
Nalin Dahyabhai 74a7640
    
Nalin Dahyabhai 74a7640
    CVSSv2: AV:N/AC:M/Au:N/C:N/I:N/A:P/E:POC/RL:OF/RC:C
Nalin Dahyabhai 74a7640
    
Nalin Dahyabhai 74a7640
    A related but more minor vulnerability requires authentication to
Nalin Dahyabhai 74a7640
    exploit, and is only present if a third-party KDC database module can
Nalin Dahyabhai 74a7640
    dereference a null pointer under certain conditions.
Nalin Dahyabhai 74a7640
    
Nalin Dahyabhai 74a7640
    (back ported from commit 5d2d9a1abe46a2c1a8614d4672d08d9d30a5f8bf)
Nalin Dahyabhai 74a7640
    
Nalin Dahyabhai 74a7640
    ticket: 7756 (new)
Nalin Dahyabhai 74a7640
    version_fixed: 1.11.4
Nalin Dahyabhai 74a7640
    status: resolved
Nalin Dahyabhai 74a7640
Nalin Dahyabhai 74a7640
diff --git a/src/kdc/main.c b/src/kdc/main.c
Nalin Dahyabhai 74a7640
index 1624046..8a085a2 100644
Nalin Dahyabhai 74a7640
--- a/src/kdc/main.c
Nalin Dahyabhai 74a7640
+++ b/src/kdc/main.c
Nalin Dahyabhai 74a7640
@@ -125,6 +125,9 @@ setup_server_realm(struct server_handle *handle, krb5_principal sprinc)
Nalin Dahyabhai 74a7640
     int kdc_numrealms = handle->kdc_numrealms;
Nalin Dahyabhai 74a7640
 
Nalin Dahyabhai 74a7640
     kret = 0;
Nalin Dahyabhai 74a7640
+    if (sprinc == NULL)
Nalin Dahyabhai 74a7640
+        return NULL;
Nalin Dahyabhai 74a7640
+
Nalin Dahyabhai 74a7640
     if (kdc_numrealms > 1) {
Nalin Dahyabhai 74a7640
         if (!(newrealm = find_realm_data(handle, sprinc->realm.data,
Nalin Dahyabhai 74a7640
                                          (krb5_ui_4) sprinc->realm.length)))