order_by 和 group_by 参数实现的身份验证后 SQL 注入📌 摘要
ERPNext v15.67.0 和 Frappe Framework v15.72.4 在 frappe.desk.reportview.get API 端点中包含多个身份验证后的 SQL 注入漏洞。对 order_by 或 group_by 参数的恶意输入可用于注入并执行任意 SQL 语句。这使得经过身份验证的用户(具有报表的基本访问权限)能够提取敏感数据、执行数据库枚举,并可能操纵或提升系统内的权限。
漏洞类型: SQL 注入(CWE-89)
受影响产品: ERPNext / Frappe
受影响版本:
受影响端点:
POST /api/method/frappe.desk.reportview.get
易受攻击的参数:
order_bygroup_by是否需要身份验证: 是(通过 sid cookie 的有效会话)
攻击类型: 远程
严重性: 高(SQL 代码执行、数据泄露、潜在权限提升)
预估 CVSS v3.1 评分: 8.6(高) — 预估;最终评分应由官方 CVE 机构指定。
状态: 未修复(截至披露时)
CVE ID: CVE-2025-56381

✅ 仅在您拥有或已获得明确许可的系统上进行测试。未经同意,不要在生产系统上使用。
%28select%20updatexml%28null%2Cconcat%280x7e%2Cdatabase%28%29%2C0x7e%29%2Cnull%29%29
{
"doctype": "User",
"order_by": "(select updatexml(null,concat(0x7e,database(),0x7e),null))"
}
这确认了 SQL 注入已成功执行,并且当前数据库名称已被泄露。
/api/method/frappe.desk.reportview.get 发送一个带有恶意 order_by 或 group_by 载荷的精心构造的 POST 请求。order_by 和 group_by。/reportview.get API 和报表功能的访问。frappe.desk 方法。操作员应在补丁可用后立即升级。发现者:Mohammed Aloli
Frappe Framework:https://github.com/frappe/frappe
ERPNext 项目:https://github.com/frappe/erpnext
OWASP SQL 注入速查表:https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
本公告仅用于教育和防御性安全研究目的。未经授权利用此漏洞是非法的且不道德的。如果您是 ERPNext 或 Frappe 的开发人员或管理员,请立即应用建议的缓解措施,并监控异常的 API 使用情况。