In der MIT Kerberos Applikation wurden zwei Sicherheitslücken entdeckt. Diese erlauben es einem entfernten Angreifer Denial-of-Service-Attacken auszuführen.
Das erste Problem kann von einem angemeldeten Angreifer ausgenutzt werden, wenn dieser Rechte besitzt Password-Policies zu setzen. In diesem Fall kann er einen Null-Zeiger-Derefernzfehler in der krb5_ldap_get_password_policy_from_dn()-Funktion ausnutzen, um den Dienst zum Absturz zu bringen. Hierfür anfällig sind Systeme bei denen kadmind LDAP für die KDC-Datenbank verwendet.
Der Patch für diese Schwachstelle fängt den NULL-Zeiger durch eine korrigierte If()-Abfrage ab:
ent=ldap_first_entry(ld, result);
- if (ent != NULL) {
- if ((st = populate_policy(context, ld, ent, pol_name, *policy)) != 0)
+ goto cleanup;
+ if (ent == NULL) {
+ st = KRB5_KDB_NOENTRY; + goto cleanup; }
+ st = populate_policy(context, ld, ent, pol_name, *policy);
Sollte der ent-Zeiger nun NULL sein, so ist sichergestellt, dass die populate_policy()-Funktion nun nicht mehr aufgerufen wird, wodurch die Schwachstelle nicht mehr auftritt. Bei dem zweiten Problem handelt es sich eben um einen NULL-Zeiger-Derferenzfehler. Dieser findet sich in der krb5_add_ber_mem_ldap_mod()-Funktion und kann ebenfalls von einem entfernten, angemeldeten Angreifer ausgenutzt werden, um Denial-of-Service-Attacken durchzuführen.
