CVE-2024-38829
Low · 3.7CVSS
3.7
EPSS
0.4%
Published
Dec 4, 2024
CISA due date
—
Cloudanix analysis
A bug in how some software handles text case when searching directories could let attackers see more information than they should.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw stems from using Locale-dependent String.toLowerCase() and String.toUpperCase() in LDAP query construction, allowing attackers to bypass case-insensitive comparisons and query unintended columns or attributes.
Why it matters to the business
Organizations may inadvertently expose sensitive data stored in LDAP directories through crafted queries that match additional records beyond intended results, increasing risk of data leakage in environments using affected Spring LDAP versions.
How an attack unfolds
An attacker supplies specially crafted input values that exploit locale-specific case folding exceptions in toLowerCase/toUpperCase, causing the LDAP filter to match more records than expected and return unauthorized data.
How to fix it
Upgrade Spring LDAP to patched releases beyond the affected ranges (2.4.0-2.4.3, 3.0.0-3.0.9, 3.1.0-3.1.7, 3.2.0-3.2.7 and all prior versions); review and replace any direct use of toLowerCase()/toUpperCase() in query logic with Locale.ROOT equivalents.
How to confirm the fix worked
Confirm upgrade by checking the Spring LDAP jar version in the classpath; test LDAP query behavior with known locale-sensitive inputs to verify only intended records are returned.
Typical attack path
- Identify an application endpoint that performs LDAP searches using Spring LDAP
- Craft input strings leveraging locale edge cases in case conversion to alter query semantics
- Submit the input to trigger unintended column/attribute matching in the LDAP query
- Observe returned data containing information from additional records
How to detect it
Review application logs for LDAP queries containing unusual case variants or unexpectedly large result sets; examine source code and dependency manifests for vulnerable Spring LDAP versions.
What your security team should do
- Prioritize patching Spring LDAP in all internet-facing or high-value applications
- Audit custom LDAP query code for similar case-folding patterns
- Monitor for increased LDAP query result volumes as a potential indicator
The record
A vulnerability in Spring LDAP allows data exposure for case sensitive comparisons.This issue affects Spring LDAP: from 2.4.0 through 2.4.3, from 3.0.0 through 3.0.9, from 3.1.0 through 3.1.7, from 3.2.0 through 3.2.7, AND all versions prior to 2.4.0. The usage of String.toLowerCase() and String.toUpperCase() has some Locale dependent exceptions that could potentially result in unintended columns from being queried Related to CVE-2024-38820 https://spring.io/security/cve-2024-38820
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.springframework.ldap:spring-ldap-core | 0 | 2.4.4 |
| Maven | org.springframework.ldap:spring-ldap-core | 3.0.0 | 3.2.8 |
| Chainguard | apache-nifi | 0 | 2.0.0-r5 |
| Chainguard | apache-nifi | 0 | 2.3.0-r0 |
| Chainguard | apache-nifi-compat | 0 | 2.0.0-r5 |
| Chainguard | apache-nifi-compat | 0 | 2.3.0-r0 |
| Chainguard | apache-nifi-toolkit | 0 | 2.0.0-r5 |
| Chainguard | apache-nifi-toolkit | 0 | 2.3.0-r0 |
| Chainguard | camunda-zeebe | 0 | 8.6.6-r0 |
| Chainguard | camunda-zeebe-compat | 0 | 8.6.6-r0 |
| Debian:11 | libspring-java | 0 | No fix |
| Debian:12 | libspring-java | 0 | No fix |
| Debian:13 | libspring-java | 0 | No fix |
| Ubuntu:20.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:22.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:24.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:24.10 | libspring-java | 0 | No fix |
| Ubuntu:25.04 | libspring-java | 0 | No fix |
| Ubuntu:25.10 | libspring-java | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | libspring-java | 0 | No fix |
| Wolfi | apache-nifi | 0 | 2.0.0-r5 |
| Wolfi | apache-nifi | 0 | 2.3.0-r0 |
| Wolfi | apache-nifi-compat | 0 | 2.0.0-r5 |
| Wolfi | apache-nifi-compat | 0 | 2.3.0-r0 |
| Wolfi | apache-nifi-toolkit | 0 | 2.0.0-r5 |
| Wolfi | apache-nifi-toolkit | 0 | 2.3.0-r0 |
| maven | org.springframework.ldap/spring-ldap-core | 3.0.0 | 3.2.8 |
Related vulnerabilities
- CVE-2026-22732 When applications specify HTTP response headers for servlet applications using Spring… Also affects apache-nifi
- CVE-2026-24281 Hostname verification in Apache ZooKeeper ZKTrustManager falls back to reverse DNS (PTR)… Also affects apache-nifi
- CVE-2026-24308 Improper handling of configuration values in ZKConfig in Apache ZooKeeper 3.8.5 and 3.9.4… Also affects apache-nifi
- CVE-2026-29062 jackson-core contains core low-level incremental ("streaming") parser and generator… Also affects apache-nifi
- CVE-2026-1225 ACE vulnerability in configuration file processing by QOS.CH logback-core up to and… Also affects apache-nifi
- CVE-2025-14763 Missing cryptographic key commitment in the Amazon S3 Encryption Client for Java may… Also affects apache-nifi
- CVE-2024-29371 In jose4j before 0.9.5, an attacker can cause a Denial-of-Service (DoS) condition by… Also affects apache-nifi
- CVE-2025-67735 Netty has a CRLF Injection vulnerability in io.netty.handler.codec.http.HttpRequestEncoder Also affects apache-nifi