Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Subscription form is public; nonce retrieval requires no authentication, so PR:N is more accurate than the reported PR:L; all other metrics from the official vector are sound.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Smart Popup by Supsystic plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.12.0. This is due to a permission map collision in the havePermissions() function in classes/frame.php, where array_merge() overwrites the popup module's administrator-restricted method list with the base controller's value, silently removing save from protected actions; this is compounded by the subscription confirmation email embedding the same generic pps_nonce that the unauthenticated wp_ajax_nopriv_save endpoint accepts, and by the complete absence of any server-side role allowlist in createWpSubscriber(). This makes it possible for unauthenticated attackers to submit a crafted POST request to admin-ajax.php using a nonce obtained from a public subscription confirmation email, setting params[tpl][sub_wp_create_user_role] to administrator via the exposed popupControllerPps::save() action, and then triggering the stored confirmation flow to create a persistent WordPress Administrator account with attacker-chosen credentials.
AnalysisAI
Privilege escalation in the Smart Popup by Supsystic WordPress plugin (all versions through 1.12.0) enables unauthenticated remote attackers to create persistent WordPress Administrator accounts with attacker-controlled credentials. Three compounding flaws are chained: a PHP array_merge() collision silently removes the save action from the popup module's permission blocklist, the subscription confirmation email leaks a reusable pps_nonce that the wp_ajax_nopriv_save endpoint accepts, and createWpSubscriber() applies no server-side role allowlist - allowing an attacker to freely set params[tpl][sub_wp_create_user_role]=administrator. No public exploit or CISA KEV listing is confirmed at time of analysis, but the attack chain is fully described in the CVE and the low complexity makes independent weaponization likely.
Technical ContextAI
The affected component is the WordPress plugin popup-by-supsystic (CPE: cpe:2.3:a:supsysticcom:smart_popup_by_supsystic:*:*:*:*:*:*:*:*), a PHP plugin operating within the WordPress AJAX handler framework. The root cause class is CWE-269 (Improper Privilege Management), manifested across three code locations. First, classes/frame.php line 180 uses array_merge() to merge permission maps; because PHP's array_merge() renumbers integer-keyed arrays and overwrites string-keyed entries, the popup module's protected-methods array is silently replaced by the base controller's shallower list, removing the save method from the blocklist. Second, modules/subscribe/models/subscribe.php (lines 292, 358, 440) drives the subscriber confirmation flow and passes a generic pps_nonce into confirmation emails without scoping it to a specific action. Third, modules/popup/models/popup.php line 316 implements createWpSubscriber() without any WordPress capability check or role allowlist, accepting attacker-supplied role parameters verbatim via the exposed popupControllerPps::save() AJAX action registered on the wp_ajax_nopriv_save hook.
RemediationAI
Update the Smart Popup by Supsystic plugin to a version released after SVN changeset 3629986 once a tagged release is published; check the WordPress.org plugin page for the latest available version. The upstream fix modifies subscribe.php and should address the role allowlist gap in createWpSubscriber(). Until a confirmed patched release is available, apply the following compensating controls in priority order: disable the plugin entirely if popup subscriber signup forms are not business-critical (eliminates the exposed AJAX endpoint at zero other cost); if the plugin must remain active, use a WAF rule or Nginx/Apache rewrite to block unauthenticated POST requests to admin-ajax.php where the action parameter equals save and the action_module parameter equals popup (note: this may also block legitimate admin save operations and should be validated in a staging environment first); audit the WordPress wp_users table for any unexpected administrator-role accounts created after the plugin was installed. Refer to the Wordfence advisory for detection guidance.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-269 – Improper Privilege Management
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53039
GHSA-m4qm-m3w3-jjcg