CVE-2025-61911·Python vulnerability
python-ldap is a lightweight directory access protocol (LDAP) client API for Python. In versions prior to 3.4.5, the sanitization method `ldap.filter.escape_filter_chars` can be tricked to skip escaping of special characters when a crafted `list` or `dict` is supplied as the `assertion_value` parameter, and the non-default `escape_mode=1` is configured. The method `ldap.filter.escape_filter_chars` supports 3 different escaping modes. `escape_mode=0` (default) and `escape_mode=2` happen to raise exceptions when a `list` or `dict` object is supplied as the `assertion_value` parameter. However, `escape_mode=1` computes without performing adequate logic to ensure a fully escaped return value. If an application relies on the vulnerable method in the `python-ldap` library to escape untrusted user input, an attacker might be able to abuse the vulnerability to launch ldap injection attacks which could potentially disclose or manipulate ldap data meant to be inaccessible to them. Version 3.4.5 fixes the issue by adding a type check at the start of the `ldap.filter.escape_filter_chars` method to raise an exception when the supplied `assertion_value` parameter is not of type `str`.
- Severity
- medium
- Software
- Python
- Fixed in
- 3.4.5
- Published
- 2025-10-10
Affected versions
Until: 3.4.5
Fixed in: 3.4.5
How to fix this CVE
Update python-ldap to version 3.4.5 or later to fix a filter escaping bypass vulnerability. This vulnerability allows attackers to bypass LDAP filter sanitization when non-default escape modes are used with list or dict objects, potentially leading to LDAP injection attacks. Apply this patch immediately if your Python applications use python-ldap for directory operations.
sudo dnf update python3-ldapDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check installed python-ldap version with: python3 -c "import ldap; print(ldap.__version__)"
- Step 2: Identify applications using python-ldap by searching for imports: grep -r "import ldap" /opt /srv /home --include="*.py" 2>/dev/null
- Step 3: Review application logs for LDAP filter errors or unusual LDAP query patterns, especially those containing unescaped special characters like * ( ) &
- Step 4: Verify the patched version is in place by confirming python-ldap version is 3.4.5 or higher using: python3 -m pip show python-ldap | grep Version
FAQ
What is CVE-2025-61911?
CVE-2025-61911 is a filter escaping bypass vulnerability in python-ldap that occurs when using escape_mode=1 with list or dict objects as parameters. This allows attackers to inject unescaped special characters into LDAP filters, potentially bypassing access controls.
Is CVE-2025-61911 being actively exploited?
No, CVE-2025-61911 is not currently listed on CISA's Known Exploited Vulnerabilities catalog and no public exploits are available. However, it should still be remediated as a precaution.
What versions of Python are affected by CVE-2025-61911?
All python-ldap versions prior to 3.4.5 are affected. The vulnerability specifically impacts code using escape_mode=1 in the escape_filter_chars method.
How do I check if my server is vulnerable to CVE-2025-61911?
Run: python3 -c "import ldap; print(ldap.__version__)" and verify the version is 3.4.5 or higher. If lower, the system is vulnerable.
Does Defensia detect CVE-2025-61911?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If python-ldap is installed on a monitored server, CVE-2025-61911 will appear in your dashboard with remediation steps.
Related Python CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2025-61911. Free for 1 server.
Get started free