FireBox <= 3.1.10 - Authenticated (Author+) Remote Code Execution to Privilege Escalation
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
The FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 3.1.10 via the value function. This is due to a trivially bypassable regex blacklist in Executer::allowedToRun() that fails to block WordPress core functions such as wp_insert_user, update_option, and file_put_contents, combined with no sanitization of PHP condition rule values stored via the firebox_meta REST endpoint. This makes it possible for authenticated attackers, with author-level access and above, to execute code on the server. On sites upgraded from a version prior to 3.1.10, the Migrator::preserveCampaignRoleAccess() function automatically grants the edit_fireboxes and publish_fireboxes capabilities to the Author role, lowering the effective entry point to Author-level access.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- fireplugins FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment
through 3.1.10
References 6
plugins.trac.wordpress.org
- browser/firebox/tags/3.1.10/Inc/Framework/Inc/Base/Conditions/Conditions/PHP.php#L36
- browser/firebox/tags/3.1.10/Inc/Framework/Inc/Base/Executer.php#L231
- browser/firebox/tags/3.1.10/Inc/Core/FB/Meta.php#L411
- browser/firebox/tags/3.1.10/Inc/Core/Migrator.php#L606
- changeset?reponame=&old=3666018%40firebox&new=3666018%40firebox