CVE-2025-66396ChurchCRM是一款开源的教堂管理系统。在6.5.3之前的版本中,该系统存在严重的SQL注入漏洞,漏洞位于src/UserEditor.php文件中。当管理员保存用户配置设置时,系统对POST参数数组的键值处理不当,未进行适当的清理或类型转换就直接用于SQL查询构造。攻击者可以利用此漏洞通过恶意构造的type参数注入任意SQL代码,执行时间盲注攻击,直接与数据库进行交互。虽然该漏洞需要管理员权限才能利用,但一旦被攻击者利用(通过恶意账户或账户劫持),可绕过应用程序级别的日志记录和限制,直接读取、修改或删除数据库中的所有数据,包括其他用户凭证、财务记录和个人信息等敏感数据。根据CVSS 3.1评分7.2,该漏洞具有高机密性、高完整性和高可用性影响,CVSS向量为AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H,表明通过网络即可发起攻击,且无需用户交互。
漏洞根源在于src/UserEditor.php中对用户输入处理不当。系统接收POST请求中的type参数作为数组处理,代码通过key($type)函数提取数组键值,该键值预期为数字ID。然而,提取的键值被直接赋值给$id变量后,未经过任何过滤或类型转换就直接拼接到SQL查询语句中。具体来说,$id变量被直接用于SELECT和UPDATE语句的WHERE条件部分,形成了注入点。攻击者可以在type参数数组的键中注入SQL语句片段,如使用时间盲注技术(TIME_BASED_BLIND_SQL_INJECTION),通过SLEEP()或BENCHMARK()等函数构造payload,根据响应时间判断SQL执行结果,从而逐步提取数据库中的敏感信息。由于漏洞代码路径在管理员保存配置时被调用,攻击者需要具备管理员权限才能触发该漏洞。成功利用后可进行数据窃取、数据篡改或进一步横向移动。