CVE-2026-15748: CVE-2026-15748: The Forminator Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all ve…
Unknown · · NVD published 2026-08-18 · posted 2026-08-18 · last modified 2026-10-23
What it is
The Forminator Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.56.1 via the handle_file_upload function. This is due to insufficient file type validation in handle_file_upload, where the dangerous-extension blocklist performs exact-key matching that is bypassed by pipe-alternative MIME type keys, combined with a public submission handler that trusts attacker-controlled upload field configuration injected via a forged Select field value. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible.
| Weakness | CWE-434 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (source: [email protected]) |
| ATT&CK tactics | Initial Access → Execution → Persistence |
Exploitation evidence
First exploit evidence seen: 2026-08-18 (earliest date across the sources below).
Exploited in the wild
No source on this site lists in-the-wild exploitation yet (CISA KEV, VulnCheck KEV).
Public exploit code
GitHub proof-of-concept repositories
3 public repositories from 3 accounts, first seen 2026-08-18. Most starred: yora1928/cve-2026-15748 (3 stars), view repository.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: nomi-sec/PoC-in-GitHub.
How to fix it
Fixed versions
NVD does not list a fixed version for this CVE. Use the vendor advisory below.
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
No vendor-tagged reference yet; see the full reference list.
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190, T1203) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190, T1203) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190, T1203) : Update software regularly by employing patch management for externally exposed applications.
- M1042 Disable or Remove Feature or Program (for T1505.003) : Consider disabling functions from web technologies such as PHP’s `evaI()` that may be abused for web shells.
- M1018 User Account Management (for T1505.003) : Enforce the principle of least privilege by limiting privileges of user accounts so only authorized accounts can modify the web directory.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.
- Persistence: Look for new files in web roots, new scheduled tasks/services, and new accounts created after the exposure window.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2026-15748
- CVE.org record
- FIRST EPSS (2026-10-24)
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/admin/classes/class-admin-ajax.php#L1196
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/library/abstracts/abstract-class-field.php#L2308
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/library/fields/upload.php#L552
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/library/helpers/helper-fields.php#L3425
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/library/modules/custom-forms/front/front-action.php#L2767
- https://plugins.trac.wordpress.org/browser/forminator/tags/1.55.1/library/modules/custom-forms/front/front-action.php#L738
- https://www.wordfence.com/threat-intel/vulnerabilities/id/263ac05d-f1ca-46e3-a43e-3b45eb8066d4?source=cve