A flaw was found in 389-ds-base. The get_ldapmessage_controls_ext() function frees the parsed controls array on the Session Tracking critical-control rejection path without clearing the SLAPI_REQCONTROLS pblock slot. Operation teardown then frees the same pointer again, causing a double-free. An unauthenticated remote attacker can trigger this with a single BIND request carrying a critical Session Tracking control, resulting in heap corruption and potential denial of service.
On builds that include upstream Issue 7389 (committed 2026-04-09, present in 389-ds-base-3.2 branch), administrators can add the Session Tracking control OID (1.3.6.1.4.1.21008.108.63.1) to the ds-ignored-control-criticality configuration attribute. This causes the server to ignore the criticality flag on this control, preventing the vulnerable rejection path from being reached.
Additionally, network-level restriction of access to the LDAP port (389/636) to trusted clients reduces exposure.