[krbdev.mit.edu #2110] MIT KDC fails to handle unknown padata

Douglas E. Engert deengert at anl.gov
Wed Feb 11 20:29:59 EST 2004



Tom Yu via RT wrote:
> 
> >>>>> "DEEngert" == DEEngert at anl gov via RT <rt-comment at krbdev.mit.edu> writes:
> 
> DEEngert> Tom Yu via RT wrote:
> 
> >> I think the code is functioning as I expect it to, in this case.
> 
> DEEngert> No.
> 
> Let me rephrase: I think the code is functioning the way it was
> intended to function when it was written.  Whether that behavior is
> correct in this case is debatable.

OK, I agree with that. 

> 
> >> After all, you require preauth, and you didn't provide any preauth
> >> that it understood.  Or are you saying that it should ask for
> >> additional preauth rather than returning "preauth failed"?
> 
> DEEngert> Yes, on the first AS-REQ the client does not know what
> DEEngert> preauth if any is required. So it justs sends the
> DEEngert> PA-PAC-REQUEST. It has to do this on the first request, as
> DEEngert> preauth may not be needed.
> 
> DEEngert> If preauth is not required the KDC ignores the
> DEEngert> PA-PAC-REQUEST and it works.
> 
> DEEngert> If preauth is required, a krb-error SHOULD be sent saying
> DEEngert> which preauths can be used.
> 
> DEEngert> I thing the KDC code sees some preauth data,
> DEEngert> (PA-PAC-REQEUST) but not any it can use, and assumes that
> DEEngert> this must be a second AS-REQ request and it assumes it has
> DEEngert> already sent the client a krb-error with the list of
> DEEngert> preauths.
> 
> This would appear to be the intent.  The problem is, if the KDC sees
> any AS-REQ containing padata, the most safe assumption to make is that
> it is a "second" AS-REQ, i.e., one replying to a KRB-ERROR asking for
> additional preauth.
> 
> Consider what happens when a client sends an AS-REQ containing padata
> that the KDC do not understand.  KDC sends KRB-ERROR with list of
> supported padata.  Client is broken in a way that causes it to send
> a mostly identical AS-REQ, lacking the padata that the KDC require.
> KDC again sends KRB-ERROR with list of supported padata.  Looping
> ensues.  The main problem being that KRB-ERROR requesting additional
> preauth isn't a hard failure, and the other errors are.
> 
> I'm not sure of the best way to get around this problem, without
> somehow requiring the KDC to keep some state which it currently does
> not.

The difference is that the PA-PAC-REQUEST is really a flag, not a preauth.

So maybe the KDC needs to recognize flag type entries (there may be others)
and not make the assumption that this is a second AS-REQ. But this requires
knowledge of all the possible pa-data types or at least the flag types. 

Is this an issue for Sam's draft-ietf-krb-wg-preauth-framework-00.txt?

  
> 
> ---Tom

-- 

 Douglas E. Engert  <DEEngert at anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439 
 (630) 252-5444


More information about the krb5-bugs mailing list