The flaw is in how ldapd delegates BSD authentication to an LDAP child process and correlates the returned result with the pending Bind request. Before the fix, correlation used only the LDAP child process client file descriptor and the LDAP message ID. After a connection closes, its file descriptor can be reused by a later connection; if the message ID is also reused, the earlier authentication result can be applied to the later connection, creating an Incorrect Authorization condition classified as CWE-863.
The fix assigns each connection a unique 64-bit identifier, carries that identifier in authentication requests and results, and looks up connections with conn_by_id instead of conn_by_fd. It also checks for a missing connection before continuing to process the result, preventing a NULL pointer dereference. The publicly documented material does not fully establish the exact packet ordering, connection timing, or message ID conditions needed to reproduce every exploitable case.