[krbdev.mit.edu #7136] S4U2Self using kvno broken in 1.10.1, but not in 1-9.3

Michael Morony via RT rt-comment at krbdev.mit.edu
Thu May 17 02:25:21 EDT 2012


I'm using kvno to get some tickets using protocol transition (S4U2Self) 
with a Win2k3 KDC.
Essentially I am running the following 3 shell commands

kdestroy
kinit -k -t my_keytab delegate_user
kvno -k my_keytab -U fakeuser -P delegate_user cifs/2008FileServer

Idea being for to get a service ticket for cifs for user "fakeuser".

Version 1.9.3 works fine. (Compiled from MIT source on ubuntu)

output is:
delegate_user at TEST.MYDOMAIN.COM: kvno = 2, keytab entry valid
cifs/2008FileServer at TEST.MYDOMAIN.COM: kvno = 2, keytab entry valid

Version 1.10.1 does not (Again, compiled from MIT source)

output is:

kvno: Generic preauthentication failure while getting credentials for 
delegate_user at TEST.MYDOMAIN.COM
kvno: Generic preauthentication failure while getting credentials for 
cifs/2008FileServer at TEST.MYDOMAIN.COM

Reason being : some error code returns have changed in the krb5 lib and 
the s4u
code no longer does what it is supposed to, as it can't properly handle 
KRB5_PREAUTH_FAILED.

The difference in packet flow is : for 1.9.3 you see AS-REQ, then AS-REP 
with preauth required, but it then
goes and does a TGS REQ S4U style as required. For 1.10.1 you just see 
two AS-REQ/AS-REP asking for preauth, then it just fails.

The fix below works for me, is there a better way or should it be fixed 
elsewhere ?

diff --git a/src/lib/krb5/krb/s4u_creds.c b/src/lib/krb5/krb/s4u_creds.c
index e4cc8a1..dd2c7d0 100644
--- a/src/lib/krb5/krb/s4u_creds.c
+++ b/src/lib/krb5/krb/s4u_creds.c
@@ -120,7 +120,8 @@ s4u_identify_user(krb5_context context,
&use_master, NULL);
      if (code == 0 ||
          code == KDC_ERR_PREAUTH_REQUIRED ||
-        code == KDC_ERR_PREAUTH_FAILED) {
+        code == KDC_ERR_PREAUTH_FAILED ||
+        code == KRB5_PREAUTH_FAILED) {
          *canon_user = userid.user;
          userid.user = NULL;
          code = 0;




More information about the krb5-bugs mailing list