CVE-2025-11196CVE-2025-11196是WordPress External Login插件中存在的一个敏感信息泄露漏洞。该漏洞影响所有1.11.2及以下版本,由WordFence安全团队的安全研究员发现并于2025年10月15日公开披露。External Login插件是一款用于WordPress站点的扩展工具,允许管理员配置外部数据库进行用户认证和登录管理。该插件提供了一个名为'exlog_test_connection'的AJAX诊断功能,用于测试与外部数据库的连接状态。然而,该AJAX动作在实现过程中存在严重的安全缺陷,完全缺乏权限检查(capability checks)和Nonce验证机制,这意味着任何已认证的用户(包括最低权限的订阅者Subscriber级别)都可以直接调用该AJAX端点。攻击者利用此漏洞可以查询站点管理员配置的外部数据库,并通过诊断测试结果视图获取其中存储的用户名(截断形式)、电子邮件地址以及密码哈希等敏感信息。由于许多组织使用External Login插件将WordPress与现有的企业用户数据库(如LDAP后端、MySQL数据库等)集成,泄露的密码哈希可能被离线破解,从而导致更大范围的安全风险。该漏洞的CVSS 3.1评分为4.3,属于中等严重等级,攻击向量为网络,攻击复杂度低,需要低权限认证,但无需用户交互,主要影响机密性。
从技术层面分析,该漏洞的根源在于WordPress AJAX端点的不安全实现。WordPress使用AJAX机制(admin-ajax.php)处理前后端交互,开发者通常需要通过current_user_can()函数进行权限检查,并使用wp_create_nonce()和check_ajax_referer()进行CSRF保护。然而,External Login插件在实现'exlog_test_connection' AJAX动作时,完全省略了这些安全检查。具体的技术细节如下:
1. 漏洞入口位于options/testing_ajax.php文件,该文件注册了'exlog_test_connection' AJAX动作的处理函数。
2. 处理函数直接接受用户提交的数据库连接参数,并尝试连接外部数据库进行测试。
3. 连接成功后,函数会执行测试查询(如SELECT查询),并将结果(包括数据库中的用户记录)返回给调用者。
4. 视图文件views/test_results.php负责格式化输出这些测试结果,其中包含了从外部数据库获取的用户名、邮箱和密码哈希信息。
5. 由于缺少权限检查,任何已登录用户(包括Subscriber级别的低权限用户)都可以通过构造AJAX请求调用此端点。
利用方式相对简单:攻击者首先需要拥有一个有效的WordPress订阅者级别账户(可通过自行注册获得),然后构造一个POST请求到/admin-ajax.php,指定action=exlog_test_connection,并附带必要的参数,即可触发诊断测试并获取外部数据库中的敏感信息。