CVE-2025-13471
WordPress vulnerability analysis and mitigation

Overview

CVE-2025-13471 is an unauthenticated limited arbitrary option update vulnerability in the User Activity Log WordPress plugin through version 2.2. The flaw allows unauthenticated attackers to set arbitrary WordPress options to the value 1 by exploiting improper handling of failed login attempts — for example, enabling user registration on sites where it has been disabled. It was discovered by researcher Alex Tselevich (nos3curity), added to WPScan's database on 2025-12-30, and publicly published on 2026-01-06. It carries a CVSS v3.1 base score of 5.3 (Medium) (WPScan, Red Hat CVE).

Technical details

The vulnerability is classified as an Insecure Direct Object Reference (IDOR) under CWE-639 (Authorization Bypass Through User-Controlled Key) and maps to OWASP Top 10 A5: Broken Access Control (WPScan). The root cause is that the plugin's failed login logging mechanism does not properly validate or sanitize the log parameter submitted to wp-login.php before using it to update WordPress options. When the plugin is configured with "Keep Failed Login Logs" set to "Keep" and "Number of failed login for non-existing user" set to 1, an unauthenticated attacker can submit a crafted POST request to wp-login.php using an arbitrary WordPress option name as the username field, causing the plugin to set that option's value to 1. No authentication or special privileges are required, and the attack is network-accessible with low complexity.

Impact

Successful exploitation allows an unauthenticated attacker to set any WordPress site option to the integer value 1, which can have significant security consequences depending on the targeted option. The most notable example is enabling open user registration (users_can_register) on sites where it has been deliberately disabled, potentially allowing attackers to create accounts and escalate privileges further. While the impact is limited to boolean-style options (value forced to 1), the ability to manipulate core site configuration without authentication represents a meaningful integrity risk (WPScan).

Exploitability

A public proof-of-concept (PoC) is included in the WPScan advisory, demonstrating exploitation via a single curl command requiring no authentication. The EPSS score is very low at 0.000070, and there is no evidence of active in-the-wild exploitation or inclusion in the CISA KEV catalog at this time. No threat actor attribution has been reported (WPScan, Red Hat CVE).

Exploitation steps

  1. Reconnaissance: Identify WordPress sites running the User Activity Log plugin version ≤ 2.2. This can be done via passive enumeration (e.g., checking /wp-content/plugins/user-activity-log/) or using tools like WPScan.
  2. Verify plugin configuration: The exploit requires the plugin to be configured with "Keep Failed Login Logs" set to "Keep" and "Number of failed login for non-existing user" set to 1 (the default settings).
  3. Craft the malicious request: Send a POST request to wp-login.php using the target WordPress option name as the log (username) parameter and any value as the password:
curl -X POST https://example.com/wp-login.php \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "log=users_can_register&pwd=anything&wp-submit=Log+In"
  1. Option updated: The plugin processes the failed login attempt and sets the WordPress option named users_can_register (or whichever option was specified) to 1.
  2. Leverage the change: If user registration was enabled, the attacker can now register an account on the site and potentially escalate privileges through other means (WPScan).

Indicators of compromise

  • Network: Unusual POST requests to /wp-login.php where the log parameter contains WordPress option names (e.g., users_can_register, default_role) rather than actual usernames; high volume of failed login attempts from a single IP targeting non-existent usernames.
  • Logs: WordPress authentication logs or server access logs showing repeated wp-login.php POST requests with option-name-like values in the log field; plugin activity logs recording failed login events for usernames matching WordPress option names.
  • WordPress Database: Unexpected changes to the wp_options table, particularly options such as users_can_register being set to 1 without corresponding admin activity; review option_value changes with timestamps correlating to suspicious login attempts.

Mitigation and workarounds

As of the disclosure date, there is no known fix available for the User Activity Log plugin through version 2.2 (WPScan). Site administrators should consider deactivating or removing the plugin until a patched version is released. As a workaround, changing the plugin's "Number of failed login for non-existing user" setting away from 1, or disabling the "Keep Failed Login Logs" feature, may reduce exposure. Additionally, monitoring the wp_options table for unexpected changes and implementing a Web Application Firewall (WAF) rule to block suspicious wp-login.php POST requests can help mitigate risk.

Community reactions

The vulnerability was discovered and responsibly disclosed by researcher Alex Tselevich (nos3curity), who also published a technical write-up at nosecurity.blog. WPScan verified and published the advisory, classifying it as a confirmed IDOR vulnerability (WPScan). No significant broader media coverage or notable community debate has been identified beyond standard vulnerability database aggregation.

Additional resources


SourceThis report was generated using AI

Related WordPress vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-15239NONEN/A
  • simple-cloudflare-turnstile
NoYesAug 07, 2026
CVE-2026-15211NONEN/A
  • subscriptions-for-woocommerce
NoYesAug 07, 2026
CVE-2026-15148NONEN/A
  • wp-events-manager
NoYesAug 07, 2026
CVE-2026-16265NONEN/A
  • wp-google-map-plugin
NoYesAug 07, 2026
CVE-2026-16263NONEN/A
  • wp-google-map-plugin
NoYesAug 07, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management