CVE-2026-15041: Timing-Based Information Disclosure in 389 Directory Server PBKDF2 Hash Verification
389 Directory Server contains a timing-based information disclosure vulnerability in its PBKDF2-SHA256 password hashing implementation. Instead of using a constant-time comparison function, the server uses standard memcmp() to verify password hashes during LDAP authentication. While an attacker could theoretically measure minute timing differences across many bind attempts to extract partial hash information, the practical difficulty is extremely high due to PBKDF2's intentional computational overhead. This is a low-severity issue affecting authentication security rather than availability or integrity.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 3.7 LOW · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
- Weaknesses (CWE)
- CWE-208
- Affected products
- 8 configuration(s)
- Published / Modified
- 2026-07-08 / 2026-07-09
NVD description (verbatim)
A flaw was found in 389 Directory Server. The PBKDF2-SHA256 password verification function uses standard memcmp() for comparing password hashes instead of a constant-time comparison function. A remote attacker could potentially use timing measurements of LDAP bind attempts to infer partial hash information, though practical exploitation is extremely difficult due to PBKDF2 computational overhead.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-15041 stems from CWE-208 (Observable Timing Discrepancy), where 389 Directory Server's password verification logic relies on memcmp() instead of a constant-time comparison function. When a user authenticates via LDAP bind, the server derives the PBKDF2-SHA256 hash of the supplied password and compares it to the stored hash. A standard memcmp() implementation typically returns early upon finding the first differing byte, creating measurable timing variations correlated with hash similarity. An attacker positioned to measure network latency or observe precise response times could, in theory, progressively narrow down valid hash bytes. However, PBKDF2's iterative key derivation (which itself requires significant CPU time per authentication attempt) makes this attack vector impractical in real-world scenarios where bind attempts are also rate-limited or monitored.
Business impact
The direct business risk is low. Authentication bypass is not possible; an attacker cannot forge valid credentials or gain unauthorized access without significantly compromised network conditions and access to multiple unthrottled authentication attempts. The vulnerability does not affect confidentiality of user data beyond the theoretical exposure of minute timing metadata. Organizations should view this as a defense-in-depth hardening opportunity rather than an urgent authentication threat. Compliance frameworks may note the deviation from secure coding practices, but no immediate business continuity risk exists.
Affected systems
Red Hat 389 Directory Server and Red Hat Enterprise Linux deployments that rely on 389 DS for LDAP authentication are affected. Specific product variants listed include redhat directory_server and redhat 389_directory_server across multiple RHEL versions. Any organization using 389 DS as a centralized authentication backend should assess whether they operate the affected software, though the low CVSS score suggests this is a lower-priority triage item compared to remote code execution or authentication bypass flaws.
Exploitability
Exploitation is extremely difficult in practice. The attack requires (1) network positioning to measure LDAP response timing with sub-millisecond precision, (2) ability to send many authentication requests without detection or rate-limiting, (3) statistical analysis across hundreds or thousands of attempts, and (4) knowledge that PBKDF2-SHA256 is the hash algorithm in use. PBKDF2's deliberate slowness—the entire point of the algorithm—makes timing differences minute and noisy. This vulnerability is not included in CISA's Known Exploited Vulnerabilities (KEV) catalog, indicating no active in-the-wild exploitation has been reported. The attack is primarily of academic interest rather than a practical threat to secured, monitored LDAP environments.
Remediation
Apply a patch from Red Hat that updates 389 Directory Server to use constant-time comparison functions (such as CRYPTO_memcmp or equivalent timing-safe implementations) for password hash verification. Organizations should verify the specific patched version from Red Hat's security advisory before deployment. Until patching is possible, organizations can reduce risk by implementing rate-limiting on LDAP bind attempts, network segmentation to restrict authentication traffic, and monitoring for anomalous authentication patterns that might indicate timing-based reconnaissance.
Patch guidance
Consult the Red Hat security advisory for CVE-2026-15041 to identify the corrected 389 Directory Server version for your Enterprise Linux release. Test the patch in a non-production LDAP environment first, as authentication services are critical. Deployment does not require service restart in most cases, but validation of bind operations post-patch is essential. Given the low severity and difficulty of exploitation, this patch can be scheduled alongside routine maintenance rather than emergency out-of-cycle deployments, unless your organization operates in a high-security environment with strict authentication controls.
Detection guidance
Monitor LDAP authentication logs for patterns of repeated failed binds from the same source IP across multiple user accounts—a sign someone may be probing for timing differences. Network-based detection is challenging because the attack involves subtle timing measurements; focus instead on operational anomalies. No specific intrusion detection signatures are practical for this vulnerability. Verify your 389 DS version using rpm -q 389-ds-base or equivalent on RHEL systems. If you require assurance of timing-safe implementations, code review or vendor confirmation of the constant-time comparison function is the most reliable approach.
Why prioritize this
CVE-2026-15041 is a low-priority patch due to its 3.7 CVSS score, lack of KEV status, extreme exploitation difficulty, and dependence on network conditions and unthrottled authentication access that well-configured LDAP deployments already mitigate. Prioritize critical and high-severity vulnerabilities first. However, organizations with mature patch management processes should include this in regular monthly or quarterly cycles, and security teams focused on defense-in-depth hardening should not overlook it indefinitely.
Risk score, explained
The CVSS 3.1 score of 3.7 (LOW severity) reflects limited confidentiality impact (L), high attack complexity (H), and no integrity or availability impact. Attack vector is network (N), requiring no privileges (N) and no user interaction (N). The high complexity score appropriately penalizes the extreme practical difficulty: an attacker must overcome PBKDF2 computational overhead, achieve precise timing measurements, and conduct statistical analysis across many attempts. The result is a low-severity rating, confirmed by the absence of KEV inclusion.
Frequently asked questions
Can an attacker use this timing vulnerability to crack a user's password?
No. The timing disclosure reveals only partial hash information, not the password itself. Deriving the original password from a PBKDF2 hash remains computationally infeasible. An attacker could only gradually narrow down which hash bytes match known hashes, a process too slow to be practical against systems with authentication rate-limiting.
Do I need to restart 389 Directory Server after patching?
Consult your specific Red Hat advisory for the patched version. Many security patches for 389 DS can be applied without service restart if hot-reloading is supported, but authentication-related changes may require a controlled restart during a maintenance window. Always test in non-production LDAP environments first.
Why does 389 Directory Server use memcmp() instead of a constant-time comparison?
Legacy code and developer oversight rather than intentional design. The vulnerability exists because standard memcmp() implementations prioritize performance over security; they return as soon as a mismatch is found. Modern coding practices and frameworks now default to timing-safe comparison functions, so this issue is being phased out across mature projects.
If my LDAP server is internal and behind a firewall, am I still at risk?
The risk is greatly reduced but not eliminated. Timing-based attacks are most practical from a network position where the attacker can measure latency accurately (e.g., on the same subnet or with direct network access). Internal-only LDAP services with well-configured access controls are lower priority for patching, but you should still include this fix in your regular patch cycle.
This analysis is provided for informational purposes to help security professionals contextualize and prioritize CVE-2026-15041. The vulnerability details, CVSS score, and affected product list are based on official source data as of the publication date. Exploit difficulty and practical risk are subject to network environment, access controls, and configuration. Organizations should consult Red Hat's official security advisory for patch versions, supported platforms, and definitive remediation steps. Neither this page nor SEC.co provides active exploit code or weaponization guidance. Always test patches in non-production environments before deployment to production authentication infrastructure. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-13758LOWCryptX Perl Timing Side-Channel in AEAD Tag Verification
- CVE-2026-41514LOWOP-TEE Hisilicon RSA-OAEP Padding Oracle
- CVE-2026-41515LOWOP-TEE RSA-OAEP Timing Side-Channel Padding Oracle
- CVE-2026-41516LOWOP-TEE Hisilicon HPRE RSA Padding Oracle Vulnerability
- CVE-2026-48011LOWShopware Admin Username Enumeration via Timing Attack
- CVE-2026-5419LOWGnuTLS PKCS#7 Padding Timing Side-Channel Information Disclosure
- CVE-2017-20240MEDIUMTiming Attack in Crypt::PBKDF2 Perl Module
- CVE-2026-27882MEDIUMCoolify Timing Attack on GitLab Webhook Token Validation