Skip to main content
CVE Vulnerability Database

CVE-2025-1309: UiPress Lite Privilege Escalation Flaw

CVE-2025-1309 is a privilege escalation vulnerability in UiPress lite for WordPress allowing authenticated attackers to modify arbitrary options and gain admin access. This article covers technical details, affected versions, and mitigations.

Published:

CVE-2025-1309 Overview

CVE-2025-1309 is a privilege escalation vulnerability in the UiPress lite WordPress plugin, which provides custom dashboards, admin themes, and pages. The flaw resides in the uip_save_form_as_option() function, which lacks a capability check in all versions up to and including 3.5.04. Authenticated attackers with Subscriber-level access or higher can update arbitrary WordPress options. By modifying the default_role option to administrator and enabling the users_can_register option, attackers can register new accounts that automatically receive administrative privileges. The issue is tracked under CWE-862: Missing Authorization.

Critical Impact

A low-privileged Subscriber account can escalate to full WordPress administrator by tampering with site options, leading to complete site takeover.

Affected Products

  • UiPress lite plugin for WordPress, all versions up to and including 3.5.04
  • WordPress sites with open or accessible Subscriber-level registration
  • Multisite installations running the vulnerable plugin

Discovery Timeline

  • 2025-03-07 - CVE-2025-1309 published to NVD
  • 2026-04-15 - Last updated in NVD database

Technical Details for CVE-2025-1309

Vulnerability Analysis

The vulnerability stems from the AJAX handler uip_save_form_as_option() registered in the plugin's admin core. The handler accepts user-supplied input and writes it directly to a WordPress option through update_option() without verifying the caller's capabilities. WordPress treats any authenticated user including Subscribers as eligible to invoke the wp_ajax_ action because no current_user_can() check gates the request. Attackers leverage this to overwrite security-critical options such as default_role and users_can_register. The vulnerable code can be reviewed in the UiPress lite AJAX functions file.

Root Cause

The root cause is a missing authorization check ([CWE-862]). The function relies solely on a nonce or authenticated session but never enforces a capability such as manage_options. Any authenticated session can pass the nonce by retrieving it from a logged-in page, leaving option modification fully exposed.

Attack Vector

An attacker registers or obtains a Subscriber account on the target site. The attacker then sends a crafted AJAX POST request to admin-ajax.php invoking the uip_save_form_as_option action with parameters that overwrite the default_role option to administrator and users_can_register to 1. After registering a new account through the public registration form, the attacker logs in with full administrator privileges. The Wordfence advisory documents the request flow in detail in the Wordfence vulnerability report.

Detection Methods for CVE-2025-1309

Indicators of Compromise

  • Unexpected changes to the default_role option set to administrator in wp_options
  • The users_can_register option toggled to 1 without an administrator action
  • New WordPress administrator accounts created shortly after a Subscriber account login
  • POST requests to /wp-admin/admin-ajax.php with action=uip_save_form_as_option from non-admin sessions

Detection Strategies

  • Monitor web server logs for admin-ajax.php requests containing the uip_save_form_as_option action originating from low-privileged users
  • Audit the wp_options table periodically for drift in default_role, users_can_register, siteurl, and home
  • Alert on creation of new administrator accounts that did not originate from an existing admin session

Monitoring Recommendations

  • Enable WordPress audit logging plugins to record option changes and user role assignments
  • Forward web server and PHP-FPM logs to a central SIEM and correlate authentication events with option modification events
  • Track plugin version inventory across managed WordPress sites and flag any instance of UiPress lite at version 3.5.04 or earlier

How to Mitigate CVE-2025-1309

Immediate Actions Required

  • Update UiPress lite to a version above 3.5.04 that includes the fix from WordPress Changeset #3249865
  • Audit all user accounts and remove any unauthorized administrator users
  • Reset default_role to subscriber and verify users_can_register matches the intended configuration
  • Rotate credentials and secret keys defined in wp-config.php if compromise is suspected

Patch Information

The vendor addressed the issue by adding a capability check to the uip_save_form_as_option() AJAX handler. The fix is committed in WordPress Changeset #3249865. Site operators should upgrade to the patched release through the WordPress plugin updater or by replacing the plugin directory with the patched version.

Workarounds

  • Deactivate and remove the UiPress lite plugin until the patched version can be applied
  • Disable open user registration by setting users_can_register to 0 in WordPress general settings
  • Restrict access to /wp-admin/admin-ajax.php for unauthenticated and Subscriber-level requests using a web application firewall rule that blocks the uip_save_form_as_option action
bash
# Example WP-CLI commands to restore safe defaults and remove the vulnerable plugin
wp option update default_role subscriber
wp option update users_can_register 0
wp plugin deactivate uipress-lite
wp plugin delete uipress-lite

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.