[krbdev.mit.edu #7360] hypothesized trigger conditions

Tom Yu via RT rt-comment at krbdev.mit.edu
Thu Sep 5 20:20:25 EDT 2013


libkadm5 locks only the policy database when updates to the policy
database.  One possible trigger condition is:

* create_principal gets write lock on policy db to update policy
  refcount

* krb5kdc races against this, trying to read-lock both principal db
  and policy db (krb5_db2_get_principal gets locks on both)

  ** the principal db lock succeeds, but policy db lock fails

  ** error path in krb5_db2_lock calls krb5_db_unlock, which fails to
     unlock the non-locked policy db, and due to this bug, skips the
     code to unlock the principal db

* krb5kdc ends up with a persistent read lock on the principal db

Another possibility is lockout updates by the KDC racing against
policy lookups (from password changes) by kadmind.



More information about the krb5-bugs mailing list