Build1 distinct publisher3 min readUpdated
CVE-2026-15748 lets an unauthenticated attacker hide upload settings inside a Select field, so any site below 1.56.1 with a Select and a File Upload field is one request from a PHP file.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
CVE-2026-15748 lets an unauthenticated attacker hide upload settings inside a Select field, so any site below 1.56.1 with a Select and a File Upload field is one request from a PHP file.
Wordfence Intelligence disclosed CVE-2026-15748 on 17 August 2026, a high-severity flaw in the Forminator Forms plugin for WordPress that lets an unauthenticated attacker save a PHP file to affected servers [1][2][3][4]. Wordfence puts the exposed population at roughly 600,000 sites, and the failure is not a missing check so much as a misplaced trust: Forminator accepts upload configuration that the attacker smuggles into an unrelated field [1][2].
The precondition is narrow but common. The site needs a public Forminator form that carries both a File Upload field and a Select field, running version 1.56.1 or earlier [5][7]. The attacker injects a fake record into the nested value of the Select field, one that carries `return`, `field_type=upload`, a custom `name`, and a `field_array` [8]. Forminator's `set_field_data()` writes that record into its internal `field_data_array` [9]. Because a genuine File Upload field is present on the form, `process_uploads()` runs and treats the forged record as a legitimate upload setting [10]. From there the attacker controls the custom file type and the `additional-type` value [11].
The extension check is where the second mistake compounds the first. Forbidden extensions are blocked by exact match, so the attacker submits `ph(p)|text/x-php` [12]. That string is not an exact match for the key `php`, so it clears the blocklist, but the WordPress matcher resolves `ph(p)` back to `.php`, and the server writes the file [13][14]. No account and no administrator action are required, and the initial request is anonymous [16].
Whether the write becomes remote code execution depends on the storage root. If the custom File Upload directory lacks execution prevention such as an `.htaccess` rule, the attacker fetches the saved URL and runs the code [15]. Wordfence notes that default protected upload directories can still refuse to execute PHP even after a successful save, which is the difference between an arbitrary file write and a full compromise [17]. That caveat is the one thing standing between many sites and a web shell, and it is a configuration accident rather than a defence anyone chose.
The fix is to update to 1.56.2 [6]. Short of patching, removing the File Upload and Select combination from public forms closes the path, and a WAF or a server rule that blocks PHP execution in the upload directory reduces the impact [18]. For detection, Wordfence points to POST requests where a Select field carries unusual nested arrays or `field_type=upload`, abnormal `additional-type` patterns, randomly prefixed PHP files in the upload directory, and a GET to a newly written PHP URL from the same address moments after the POST [19]. SecurityWeek is listed as a related source [20].
What to watch: whether exploitation scales now that the mechanism is public, and how many of the 600,000 sites sit on storage roots that happily run PHP.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
CVE-2026-15748 is an unauthenticated remote code execution vulnerability in the Forminator Forms plugin for WordPress, exploited by forging upload settings inside a Select field.
Wordfence Intelligence estimates around 600,000 WordPress sites are affected by the Forminator Forms vulnerability.
The vulnerability was published by Wordfence Intelligence on 17 August 2026.
The vulnerability affects Forminator Forms version 1.56.1 or earlier.
The mitigation is to update to Forminator Forms version 1.56.2 or later.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed single-source advisory relay, no independent corroboration
The cluster contains one item, a dev.to write-up that reproduces a Wordfence Intelligence advisory with specific, internally consistent detail: CVE identifier, High severity, vulnerable range (1.56.1 or earlier), fixed version (1.56.2), a step-by-step exploit chain naming set_field_data() and process_uploads(), and a concrete blocklist bypass string. That specificity and named vendor attribution support the core technical claims. It is nonetheless a secondary relay with no second publisher in the cluster (SecurityWeek is named but not supplied), no CVSS vector, no proof-of-concept reference and no confirmation of exploitation in the wild, which caps the score below the high band.
Large exposed install base and a shipped fix; no uptake or exploitation data
There is real-world footprint evidence: roughly 600,000 WordPress sites are estimated to run an affected version, and a fixed release (1.56.2) exists, which is the practical adoption event operators can act on. What is missing is everything that would raise the score: no patch-uptake numbers, no measure of how many of those sites actually publish a form combining File Upload and Select fields, no data on how many upload roots permit PHP execution, and no observed exploitation or victim count.
Headline framing outruns the source's own preconditions
The story frames 600,000 sites as 'one request from a PHP file', but the same source states two narrowing conditions: the target form must expose both a File Upload and a Select field, and code execution requires the custom upload storage root to permit PHP, with default protected upload directories often blocking it. That is a modest overstatement rather than a fabrication, since the underlying unauthenticated arbitrary-file-upload bug is real, vendor-attributed and patched. No exploitation-in-the-wild claim is made, which keeps the gap small and positive.
No disclosed incentives in supplied material
The cluster contains no disclosure of commercial relationships, sponsorship, affiliate arrangements or vendor funding for either the relaying publisher or the originating advisory, and no pricing or product-promotion content beyond a generic mitigation mention of WAFs. Scoring incentive pressure would require inferring facts the source does not provide.
Moderate: coherent vendor-sourced detail, one publisher, no outcome data
Confidence rests on the internal coherence and specificity of a single vendor-attributed advisory relay, which is enough to act on operationally (patch, hunt for indicators) but not enough to treat impact estimates as verified. Single-publisher coverage, no independent corroboration, no exploitation observations and no patch-uptake data hold the score near the middle.
security
A North Korean IT worker got hired by a federal agency. Vetting is a security control now.1 distinct publisher
build
GitLab bundles a zero-click GraphQL flaw with a CSRF bug, and only one needs a victim1 distinct publisher
security
Intel's 72 CVEs land in firmware, drivers and the AI tooling stack; AMD adds a dozen1 distinct publisher
build
ShieldBreak: a Defender-to-SYSTEM PoC that your last patch cycle did not stop1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 18, 2026