PHP to Page <= 0.3 - Authenticated (Subscriber+) Local File Inclusion to Remote Code Execution via Shortcode
Strategic Overview
- Status
- Unpatched
- Affected Plugin
- PHP to Page
- Affected Version
<= 0.3- CVSS
- 9.9Critical
- Weakness type
- CWE-98 · Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')
- CVE
CVE-2023-5199
At a glance
CVE-2023-5199 is a critical-severity Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion') vulnerability in the PHP to Page WordPress plugin, affecting versions <= 0.3. It carries a CVSS score of 9.9 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires an authenticated account at Subscriber level or above. No fixed release has been reported yet; treat installations running this software as exposed. Disclosed October 2023, reported by István Márton.
Vulnerability Overview
The PHP to Page plugin for WordPress is vulnerable Local File Inclusion to Remote Code Execution in versions up to, and including, 0.3 via the 'php-to-page' shortcode. This allows authenticated attackers with subscriber-level permissions or above, to include local file and potentially execute code on the server. While subscribers may need to poison log files or otherwise get a file installed in order to achieve remote code execution, author and above users can upload files by default and achieve remote code execution easily.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-98: Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')
PHP to Page <= 0.3 carries this weakness at php-to-page, and reaching it takes an account at Subscriber level or above. PHP file inclusion means a path used by include or require is built from request data, so the file that gets executed is under the caller's influence.
Including an attacker-influenced file executes its contents, which is why this class is routinely chained with an upload or log-poisoning step to reach code execution. No fixed build of this plugin is recorded for PHP to Page yet, so installs running <= 0.3 stay exposed until the vendor ships one.
Remediation
No known patch available. Please review the vulnerability's details in depth and employ mitigations based on your organization's risk tolerance. It may be best to uninstall the affected software and find a replacement.
How does WordSec protect against this?
An attacker needs Subscriber access first, so the firewall sees the attempt as traffic from a logged-in account: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. No patched version is recorded yet, which is the case where a filtering layer matters most, because there is nothing to update to.
- Firewall
- Scanner
- Alerts
External References
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C