CVE-2025-56380CVE-2025-56380是Frappe Framework v15.72.4版本中发现的SQL注入漏洞。该漏洞存在于frappe.client.get_value API端点中,攻击者可以通过精心构造的fieldname参数注入恶意SQL语句,从而绕过应用程序的正常数据访问控制,直接与后端数据库进行交互。
Frappe Framework是一个基于Python的开源低代码Web开发框架,广泛用于构建企业级ERP、CRM等业务管理系统。由于其模块化和可扩展的特性,被全球众多企业和组织广泛采用。该漏洞的CVSS评分为6.5,属于中危级别,攻击向量为网络攻击(AV:N),无需认证(PR:N)和用户交互(UI:N)即可利用,机密性和完整性影响均为低级别(C:L/I:L),可用性不受影响(A:N)。
该漏洞由安全研究员MoAlali发现并报告。由于Frappe Framework通常用于处理敏感的业务数据,包括客户信息、财务记录和运营数据,SQL注入漏洞可能导致未经授权的数据访问、数据篡改或敏感信息泄露。攻击者可以利用此漏洞读取数据库中的敏感信息,或在某些情况下执行数据修改操作,对企业数据安全构成威胁。
该漏洞的根源在于frappe.client.get_value API端点对fieldname参数的处理缺乏充分的输入验证和参数化查询保护。具体技术细节如下:
1. **漏洞端点**:frappe.client.get_value是Frappe Framework提供的客户端API端点,用于根据指定字段获取数据库记录的值。该API接受多个参数,其中fieldname参数用于指定要查询的数据库字段名称。
2. **注入原理**:当用户向fieldname参数传入恶意构造的SQL语句片段时,由于后端代码直接将用户输入拼接到SQL查询语句中而未进行适当的转义或参数化处理,攻击者可以注入任意SQL代码。典型的注入payload可能包含UNION SELECT等SQL关键字,用于提取数据库中的其他表数据。
3. **利用方式**:攻击者无需认证即可通过网络直接访问frappe.client.get_value端点,构造包含SQL注入payload的fieldname参数,发送到目标服务器。服务器在处理请求时执行恶意SQL语句,攻击者可以从响应中获取数据库中的敏感信息。
4. **影响范围**:由于Frappe Framework使用统一的数据库访问层,该漏洞可能影响所有使用受影响版本的Frappe应用,包括ERPNext等基于Frappe构建的业务应用。