SecurityTracker.com
Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |   

SecurityTracker
Archives


 
Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Affiliates
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Partners
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker
bugs
@
securitytracker.com






Category:   Application (Directory)  >   Microsoft Active Directory Vendors:   Microsoft
Microsoft Active Directory May Have Bug That Allows Remote Users to Crash the Directory
SecurityTracker Alert ID:  1004369
SecurityTracker URL:  http://securitytracker.com/id/1004369
CVE Reference:   GENERIC-MAP-NOMATCH   (Links to External Site)
Date:  May 24 2002
Impact:   Denial of service via network
Exploit Included:  Yes  

Description:   A potential denial of service vulnerability was reported in Microsoft's Active Directory. A remote user may be able to cause Active Directory to hang under certain circumstances. If anonymous queries are disabled, the remote user must be authenticated.

It is reported that a remote user that has authenticated to the Windows 2000 Realm using Kerberos V may be able to query a Microsoft Active Directory server via LDAP in such a manner that the directory will hang.

The author indicates that the vulnerability may exist in the GSSAPI layer and not in Active Directory itself.

The vulnerability was reportedly triggered with a paged search conducted using the OpenLDAP 2.0.23 ldapsearch tool compiled with GSSAPI support to allow Kerberos V authentication. For information on conducting paged searches, see:

http://msdn.microsoft.com/library/en-us/netdir/ldap/paging_search_results.asp

In a manner reportedly consistent with RFC 2696, the author added the following lines of code to the ldapsearch tool:

---------------------------------------
LDAPControl c;
LDAPControl *ctrls[2];
ctrls[0] = &c;
ctrls[1] = NULL;

c.ldctl_oid = "1.2.840.113556.1.4.319";
c.ldctl_value.bv_val = NULL;
c.ldctl_value.bv_len = 0;
c.ldctl_iscritical = 0;

ldap_set_option(ld,LDAP_OPT_SERVER_CONTROLS,ctrls);
----------------------------------------

As a test case, the directory was passed a page length of 0, causing the directory to hang.

The author notes that if anonymous queries are DISABLED, the flaw can only be triggered by a remote authenticated user.

The vendor has reportedly been notified.

Impact:   A remote authenticated user could cause the directory to crash. If anonymous queries are permitted, a remote user can cause the directory to crash.
Solution:   No solution was available at the time of this entry.
Vendor URL:  www.microsoft.com/windows2000/technologies/directory/ad/default.asp (Links to External Site)
Cause:   Exception handling error
Underlying OS:   Windows (Any)

Message History:   None.


 Source Message Contents

Date:  23 May 2002 14:55:46 -0000
Subject:  Microsoft Active Directory security vulnerability




A few weeks ago, I was developing a script to be run on UNIX
that would query a Microsoft Active Directory server via
LDAP.  I authenticated to the Windows 2000 Realm using
Kerberos V (for information on Kerberos interoperability see
http://www.microsoft.com/technet/prodtechnol/windows2000serv/howto/kerbstep.asp). 
I then used the OpenLDAP 2.0.23 ldapsearch tool (compiled
with GSSAPI support to allow Kerberos V authentication) to
return results from the Active Directory.

Everything worked fine for searches with small result sets. 
However, when I searched for large result sets, no results
were returned.  After some investigation, I determined that
I might need to perform a paged search (see
http://msdn.microsoft.com/library/en-us/netdir/ldap/paging_search_results.asp). 
Following the procedure in rfc2696
(http://www.ietf.org/rfc/rfc2696.txt), I added the following
lines of code to the ldapsearch tool (error checking has
been omitted):

---------------------------------------
LDAPControl c;
LDAPControl *ctrls[2];
ctrls[0] = &c;
ctrls[1] = NULL;

c.ldctl_oid = "1.2.840.113556.1.4.319";
c.ldctl_value.bv_val = NULL;
c.ldctl_value.bv_len = 0;
c.ldctl_iscritical = 0;

ldap_set_option(ld,LDAP_OPT_SERVER_CONTROLS,ctrls);
----------------------------------------

Basically, I was trying to create an LDAPv3 server control
to tell the Active Directory server to perform a paged
search.  In this case, I passed it a page length of 0 (I
did this as a test).  Unfortunately, this test caused Active
Directory to hang.

My guess is that Microsoft does not check for a zero value
when setting the page size.  Thus, in calculating the number
of records to return per page, they divide by zero, casing
the process to hang.

Note that if anonymous queries are DISABLED (which they are
on our server), this vulnerability can only be exploited by
an authenticated user.  I did not test this against a
directory with anonymous queries enabled (I didn't have
one), nor did I test it with simple (plain) authentication. 
I was always authenticated using Kerberos V + GSSAPI.  The
problem could very well be in the GSSAPI layer, not Active
Directory itself.

This bug was reported to Microsoft on 5-13-2002; no response
has been received.

Client Summary:
SunBlade 1000 running Solaris 8
MIT Kerberos V 1.2.5
Cyrus SASL 1.5.27
OpenLDAP 2.0.23
-All compiled as 32-bit binaries.  See
http://www.bayour.com/LDAPv3-HOWTO.html for instructions on
compiling OpenLDAP with Kerberos & GSSAPI support.

 
 


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us

Copyright 2013, SecurityGlobal.net LLC