CVE-2025-61911:python-ldap 过滤字符转义绕过漏洞
漏洞概述
python-ldap 库中的 ldap.filter.escape_filter_chars 方法存在 sanitization 绕过漏洞。当使用非默认的 escape_mode=1 配置并传入精心构造的列表或字典作为 assertion_value 参数时,该方法会跳过对特殊字符的转义处理。
受影响版本
- 受影响版本:< 3.4.5
- 已修复版本:3.4.5
技术细节
ldap.filter.escape_filter_chars 方法支持三种不同的转义模式:
escape_mode=0(默认)和escape_mode=2:当传入列表或字典对象作为assertion_value参数时会抛出异常escape_mode=1:不会对返回值执行充分的转义逻辑
漏洞验证
|
|
影响分析
如果应用程序依赖此易受攻击的方法来转义不受信任的用户输入,攻击者可能利用此漏洞发起 LDAP 注入攻击,从而泄露或操纵本应无法访问的 LDAP 数据。
由于 Python 是动态类型语言,且常用的 JSON 格式支持列表和字典,Python 应用程序可能会经常将未经检查的、潜在恶意的列表和字典对象传递给此易受攻击的清理方法。
修复建议
在 ldap.filter.escape_filter_chars 方法的开始处添加类型检查,当传入的 assertion_value 参数不是字符串类型时抛出异常。
参考链接
- GHSA-r7r6-cc7p-4v5m
- python-ldap/python-ldap@3957526
- https://github.com/python-ldap/python-ldap/releases/tag/python-ldap-3.4.5
- https://nvd.nist.gov/vuln/detail/CVE-2025-61911
安全评分
- 严重程度:中等
- CVSS 评分:5.5
- EPSS 评分:0.059%(第18百分位)
相关弱点
- CWE-75:未能将特殊元素清理到不同平面(特殊元素注入)
- CWE-843:使用不兼容类型访问资源(类型混淆)