[krbdev.mit.edu #7099] Decrypting history key entries can fail after 1.8 upgrade

Greg Hudson via RT rt-comment at krbdev.mit.edu
Tue Mar 6 13:45:04 EST 2012


If a KDB is created with krb5 1.2 or earlier, kadmin/history will be 
created with all supported enctypes.  (In krb5 1.3 and later, 
kadmin/history is created with only one key entry, for the master key 
enctype.)

In krb5 1.7 and earlier, the kadmin/history key is selected by looking 
for  a key of the master key enctype.  In krb5 1.8, the key is selected 
by using the first key data entry.

So if a KDB is created with <=1.2, and has password history entries 
created with <=1.7, check_pw_reuse() in >=1.8 could try to decrypt those 
entries with a different key.  Decryption will fail, causing the 
password change operation to fail.

To make sure we properly use history entries in the presence of multiple 
kadmin/history keys, we need to try all keys when decrypting.

We should also consider whether failure to decrypt a history entry 
should be fatal for the password change operation, or if the history 
entry should just be ignored (possibly allowing a historical user 
password to be reused when it shouldn't be allowed, although there are 
other cases where that can happen).



More information about the krb5-bugs mailing list