CVE-2026-4885: Piotnet Addons File Upload Flaw
Critical CVSS (9.8) reachable over network.
TL;DR - CVE-2026-4885 is a critical unauthenticated arbitrary-file-upload flaw in Piotnet Addons for Elementor Pro through 7.1.70. - Sites are exposed when the plugin is active and a form contains a file-upload field. - No confirmed in-the-wild exploitation or verified public PoC is established; mitigate urgently because uploaded files may enable code execution.
What Is the Root Cause?
The root cause is insufficient server-side file-type validation in the plugin’s form upload handling. The implementation relies on an extension blacklist rather than enforcing a narrow allowlist of expected file types and validating the file’s actual content. A blacklist can be bypassed when dangerous extensions are omitted, renamed, or interpreted differently by the web server.
The documented vulnerable function is pafe_ajax_form_builder. The supplied vulnerability details identify extensions such as .phar and .phtml as examples that are not blocked by the incomplete blacklist. Those extensions can be significant on PHP deployments: whether they execute depends on server and PHP configuration, but their presence in a web-accessible location creates avoidable risk.
This is classified as CWE-434. The vulnerability does not guarantee remote code execution on every installation. Execution depends on factors such as the upload directory, web-server routing, PHP handler configuration, file permissions, and whether the attacker can subsequently request the uploaded object. Arbitrary upload of dangerous file types is nevertheless sufficient to treat the issue as a potential compromise path.
What Happened?
CVE-2026-4885 affects the WordPress Piotnet Addons for Elementor Pro plugin. The vulnerable pafe_ajax_form_builder functionality uses an incomplete extension blacklist when processing uploaded files. It blocks several extensions, including .php, .phpt, .php5, .php7, and .exe, but does not comprehensively prevent other potentially executable or dangerous file types.
An unauthenticated attacker can abuse a publicly reachable form that includes a file-upload field. Files such as .phar or .phtml may bypass the blacklist and be written to the server. Depending on the web-server configuration, upload location, and subsequent request handling, this arbitrary upload can become remote code execution.
| Field | Assessment |
|---|---|
| CVE ID | CVE-2026-4885 |
| CVSS | 9.8 Critical |
| Attack vector | Network |
| Authentication required | None |
| Privileges required | None |
| Affected product | Piotnet Addons for Elementor Pro |
| Affected versions | 0 through 7.1.70, inclusive |
| Patch available | No vendor-confirmed fixed version established in the available references |
| CWE | CWE-434, Unrestricted Upload of File with Dangerous Type |
| CISA KEV | Not listed |
The practical exposure condition is narrower than “the plugin is installed.” The site must have the vulnerable form functionality enabled and a form containing a file-upload field. Administrators should still audit published forms, because an overlooked or rarely used upload form can provide an unauthenticated attack surface.
Analyst’s Take: The first question is not whether the plugin is installed, but whether an unauthenticated form can accept files. Because no vendor-confirmed fixed version is established, exposed upload forms should be disabled while administrators verify release information and inspect the upload path.
For background on related vulnerability terminology, see what is an N-day vulnerability.
Who Needs to Act?
The affected product is Piotnet Addons for Elementor Pro for WordPress, versions 7.1.70 and earlier. The NVD-enriched range is reported as versions 0 through 7.1.70, inclusive. The Wordfence advisory describes the condition as “Piotnet Addons for Elementor Pro <= 7.1.70 — Unauthenticated Arbitrary File Upload via Form File Upload.”
Administrators should prioritize sites where all of the following are true:
- Piotnet Addons for Elementor Pro is installed and active.
- A public or otherwise network-reachable Elementor form uses a file-upload field.
- The form can be submitted without authentication.
- Uploaded files are stored under a web-accessible path or are processed by a PHP-capable server location.
The available references do not establish a confirmed fixed version. Do not assume that 7.1.71 or another release resolves the issue unless Piotnet confirms the fix in an advisory, changelog, or release documentation. Sites cannot be considered remediated merely because they have upgraded beyond 7.1.70 without verifying the vendor’s release information.
Inventory can begin with WordPress and filesystem checks:
wp plugin status piotnet-addons-for-elementor-pro
wp plugin get piotnet-addons-for-elementor-pro --field=version
find wp-content/plugins -maxdepth 2 \( -type f -iname '*piotnet*' -o \\
-type d -iname '*piotnet*' \)
The exact WordPress plugin slug may vary by installation. Use the WordPress Plugins screen or the plugin’s directory metadata to confirm the installed product and version.
Why Is the CVSS Score Critical?
The supplied NVD result reports a CVSS score of 9.8, Critical. The returned record does not include the authoritative CVSS vector string, so the exact individual vector components should be confirmed directly in the NVD record before quoting them as formal scoring data.
The score is consistent with the documented attack characteristics: the attack is remotely reachable over the network, does not require authentication, and does not require prior privileges. A successful upload can affect confidentiality, integrity, and availability if the uploaded content is executed or used to alter the WordPress installation. The potential impact is therefore materially greater than a local-only file validation issue.
The CVSS score describes technical severity, not confirmed exploitation. It does not establish that every vulnerable site permits code execution, nor does it indicate that attackers are actively exploiting the vulnerability. Site-specific configuration remains important: execution controls, upload-directory permissions, web-server mappings, WAF rules, and the presence of a public file-upload form can all change practical risk.
Has CVE-2026-4885 Been Exploited?
There is no confirmed evidence in the supplied research that CVE-2026-4885 is being actively exploited in the wild. CISA’s Known Exploited Vulnerabilities catalog currently reports on_kev: false for this CVE. Consequently, there is no CISA KEV date-added value, remediation due date, required-action entry, or ransomware-campaign flag for this issue.
That status does not show that exploitation is impossible or absent. KEV non-membership means only that CISA has not included the CVE in the catalog based on the available information. The combination of unauthenticated access, common WordPress deployment patterns, and possible transition from file upload to code execution warrants rapid defensive action.
A verified public exploit repository or confirmed weaponized proof of concept was not established from the available NVD and reference searches. The available materials describe the vulnerable upload condition and credit researcher Wannes Verwimp, but they do not establish a public GitHub exploit or a reliable end-to-end exploit PoC.
Accordingly:
- Confirmed in-the-wild exploitation: Not known from the supplied evidence.
- CISA KEV listing: No.
- Verified public PoC: Not established.
- Defender assumption: Treat exposed, unauthenticated upload forms as high risk despite the absence of confirmed exploitation.
How to Detect Exposure
Start with exposure validation. Identify every active installation of Piotnet Addons for Elementor Pro, determine whether the version is 7.1.70 or earlier, and enumerate Elementor forms containing file-upload fields. Review whether those forms are publicly reachable without authentication. Inspect the configured upload destination and confirm whether the web server can execute scripts from that path.
A simple filesystem hunt can identify recent or suspicious files, although timestamps may be altered and legitimate uploads may use similar extensions:
find wp-content/uploads -type f \\
\( -iname '*.php' -o -iname '*.phtml' -o -iname '*.phar' \\
-o -iname '*.php5' -o -iname '*.php7' \) \\
-printf '%TY-%Tm-%Td %TH:%TM:%TS %u %g %p\n' 2>/dev/null
find wp-content/uploads -type f -mtime -30 \\
-printf '%TY-%Tm-%Td %TH:%TM:%TS %s %p\n' 2>/dev/null | sort
Look for files that contain PHP markers despite having an image, document, or uncommon extension:
grep -RIl --exclude='*.log' -E '<\\?php|<\\?=|phar://' \\
wp-content/uploads 2>/dev/null
Technical Detection Notes
Web-server logs should be searched for unauthenticated POST requests to WordPress endpoints associated with form processing, followed by requests for newly created files. The exact endpoint and request parameters can vary by plugin version and site configuration, so do not rely on one fixed URI. A useful starting point is:
POST /wp-admin/admin-ajax.php
POST /?rest_route=/*
POST /wp-admin/admin-post.php
GET /wp-content/uploads/*.{php,phtml,phar}
Example detection logic for a SIEM or log pipeline:
http.method = "POST"
AND http.status_code IN (200, 201, 302)
AND (
url.path = "/wp-admin/admin-ajax.php"
OR url.path = "/wp-admin/admin-post.php"
OR url.query CONTAINS "rest_route"
)
AND (
request.body CONTAINS "upload"
OR request.body CONTAINS "file"
OR request.body CONTAINS "pafe"
)
Correlate those events with a subsequent request for a file under wp-content/uploads/, particularly when the filename ends in .phtml, .phar, .php, or another server-interpreted extension. A stronger compromise indicator is a web request to such a file followed by outbound network activity, a child process from the web server, WordPress file modification, or creation of persistence such as a new administrator account.
If access logs are available, hunt for requests like:
GET /wp-content/uploads/2026/11/<unexpected-name>.phtml
POST /wp-admin/admin-ajax.php ... pafe ...
The path and date directory are examples, not signatures. Attackers may use alternate names, extensions, encoded paths, or direct requests to a different upload location.
Remediation and Patching
The preferred remediation is to upgrade to a vendor-confirmed fixed version. The supplied NVD and vendor references do not identify a confirmed fixed release, so administrators should check Piotnet’s current release information and changelog directly. Do not label version 7.1.71 as fixed without vendor confirmation.
If no confirmed fix is available, disable or remove Piotnet Addons for Elementor Pro. Where business requirements prevent immediate plugin removal, remove file-upload fields from all forms, disable affected forms, and restrict access to them. These measures reduce exposure but should be treated as interim controls rather than a substitute for a corrected plugin.
A WordPress CLI workflow for an emergency deactivation is:
# Review current status and version first
wp plugin get piotnet-addons-for-elementor-pro --field=version
wp plugin status piotnet-addons-for-elementor-pro
# Disable the plugin if the slug is confirmed
wp plugin deactivate piotnet-addons-for-elementor-pro
If a vendor-confirmed fixed version becomes available, use the exact version specified by Piotnet or the WordPress plugin distribution channel:
# Replace X.Y.Z only with a vendor-confirmed fixed version
wp plugin update piotnet-addons-for-elementor-pro --version=X.Y.Z
wp plugin activate piotnet-addons-for-elementor-pro
wp plugin get piotnet-addons-for-elementor-pro --field=version
Do not run the placeholder command with an unverified version. If the plugin is no longer required, removal is preferable to leaving a vulnerable inactive copy on disk:
wp plugin deactivate piotnet-addons-for-elementor-pro
wp plugin delete piotnet-addons-for-elementor-pro
Technical Hardening
Prevent script execution in upload directories as a defense-in-depth measure. For Apache, a site-specific configuration can disable PHP handler execution in the relevant uploads directory, subject to local configuration and application compatibility:
# Place in the applicable uploads directory configuration.
Options -ExecCGI
<FilesMatch "\\.(php|php[0-9]?|phtml|phar)$">
Require all denied
</FilesMatch>
For Nginx, ensure the PHP location block does not pass uploads to PHP-FPM. A location rule must be tested against the site’s existing configuration before deployment:
location ~* ^/wp-content/uploads/.*\\.(php|php[0-9]?|phtml|phar)$ {
deny all;
return 403;
}
These examples are not universal drop-in configurations. Validate syntax, account for inherited directives, and test legitimate media delivery after applying them. Also consider storing uploads outside the web root, enforcing a strict allowlist of expected media types, checking MIME signatures, and using separate permissions so the web process cannot write executable application code.
If there is evidence that a dangerous file was uploaded or executed, preserve relevant logs and the filesystem before cleanup. Inspect WordPress core, plugins, themes, scheduled tasks, administrator accounts, database content, and web-server configuration. Rotate credentials and invalidate sessions after determining the likely compromise scope. Removing one uploaded file without investigating persistence should not be considered a complete incident response.
References
- NVD: CVE-2026-4885 — vulnerability record, severity information, affected-version data, and update history.
- Piotnet Addons for Elementor — vendor product site. The supplied research did not identify a specific CVE remediation notice or confirmed fixed version there.
- Wordfence vulnerability advisory — describes the unauthenticated arbitrary file-upload condition affecting versions
<= 7.1.70and credits Wannes Verwimp. - Wordfence product vulnerability reference — related advisory reference for the affected WordPress plugin.
- CISA Known Exploited Vulnerabilities Catalog — the supplied lookup reports CVE-2026-4885 as not listed.
CVE-2026-4885 should be handled as a high-priority WordPress exposure even though CISA has not listed it and no verified public PoC or active exploitation is established. Sites running Piotnet Addons for Elementor Pro 7.1.70 or earlier should first identify unauthenticated upload forms, disable the vulnerable functionality or plugin, and preserve evidence while they verify a vendor-confirmed fix. Restricting execution in upload directories and investigating unexpected files and follow-on requests should follow immediately.
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.