CVE-2026-15212 in WPO365 Login Plugininfo

Summary

by MITRE • 07/23/2026

The WPO365 | Login plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and including, 43.2. This is due to the Ajax_Service::verify_ajax_request() helper gating its wp_verify_nonce() call behind the boolean option 'enable_nonce_check', which is absent from the default 'wpo365_options' array and therefore evaluates to false via get_global_boolean_var(); as a result, the wp_ajax_wpo365_update_settings handler (Ajax_Service::update_settings) accepts POSTs from cross-origin pages and forwards the attacker-supplied 'settings' payload (base64/JSON) to Options_Service::update_options(), which merges every key/value into wpo365_options without a key allowlist. This makes it possible for unauthenticated attackers to overwrite arbitrary plugin options — including enabling the SCIM REST endpoint (enable_scim), planting an attacker-known scim_secret_token, and setting new_usr_default_role to 'administrator' — via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 07/23/2026

The WPO365 | Login plugin for WordPress presents a critical cross-site request forgery vulnerability affecting versions up to and including 43.2, which stems from flawed nonce validation mechanisms within its ajax service implementation. This vulnerability operates through a dangerous bypass of WordPress's core security protections by relying on a configurable boolean option that defaults to false, creating an attack surface where authenticated actions can be executed without proper verification. The vulnerability manifests in the Ajax_Service::verify_ajax_request() method which conditionally executes wp_verify_nonce() based on the 'enable_nonce_check' configuration parameter, a setting that is entirely absent from the default plugin options array and therefore evaluates to false when processed through get_global_boolean_var(). This design flaw effectively disables nonce verification by default, leaving the plugin's ajax endpoints completely exposed to malicious requests.

The operational impact of this vulnerability extends beyond simple privilege escalation as it allows unauthenticated attackers to manipulate core plugin settings through carefully crafted forged requests. The Ajax_Service::update_settings handler, which processes the wp_ajax_wpo365_update_settings endpoint, accepts POST data from any origin and directly forwards attacker-supplied payloads to Options_Service::update_options() without implementing proper input validation or key whitelisting. This complete lack of parameter filtering enables attackers to inject arbitrary configuration values into the wpo365_options array, which can then be used to fundamentally alter the plugin's behavior and security posture. The attack vector requires social engineering to trick administrators into performing actions such as clicking malicious links, but once executed, the consequences are severe and persistent.

The technical exploitation chain begins with an attacker crafting a forged request that includes base64-encoded JSON payloads targeting the vulnerable plugin endpoint, leveraging the missing nonce validation to bypass authentication requirements. The absence of key allowlisting in Options_Service::update_options() means that any configuration option can be modified through this vector, potentially enabling attackers to activate dangerous features like SCIM REST endpoints and establish backdoor access points using known secret tokens. This vulnerability particularly impacts security configurations by allowing attackers to elevate user privileges through manipulation of the new_usr_default_role setting, potentially granting administrative access to compromised systems. The flaw aligns with CWE-352 Cross-Site Request Forgery and maps directly to ATT&CK technique T1078 Valid Accounts, as it enables persistent unauthorized access through manipulated plugin configurations that can be leveraged for ongoing compromise.

The recommended mitigations include immediate patching of the affected plugin versions, implementing proper default security configurations that enable nonce verification by default, and adding comprehensive input validation to all ajax endpoints. Administrators should also consider implementing additional monitoring for unusual configuration changes within WordPress plugins, particularly those involving authentication-related settings. The vulnerability demonstrates a critical failure in secure coding practices where optional security features are disabled by default rather than enabled, violating fundamental principles of defense in depth and least privilege. Organizations should conduct thorough audits of their WordPress plugin configurations to identify similar vulnerabilities that may exist in other third-party components, as this flaw represents a common pattern in poorly secured web applications where security mechanisms can be easily bypassed through configuration oversight.

Responsible

Wordfence

Reservation

07/09/2026

Disclosure

07/23/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!