Description
The Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 3.7.1 via the fetch_remote_file function. This is due to a filename validation/destination mismatch in fetch_remote_file, where file type validation is performed against the attacker-controlled Content-Disposition filename rather than the URL-path-derived destination filename. This makes it possible for authenticated attackers, with contributor-level access and above, to execute code on the server. A GIF+PHP polyglot file passes wp_check_filetype_and_ext validation as image/gif via the Content-Disposition filename, while the actual destination path is written with a .php extension derived from the URL path, bypassing the unfiltered_upload capability gate entirely. The affected endpoints are reachable at this privilege level because Templately's entire REST API — including the cloud import endpoints used in this attack (/templately/v1/clouds/upload and /templately/v1/insert) — is authorized only by a current_user_can('delete_posts') check, with no administrator or manage_options capability requirement. The same permission gate also allows a contributor to overwrite the site's global Templately cloud connection via the /templately/v1/login endpoint with global_signin set to true. A complete remediation should both correct fetch_remote_file to validate the file type against the actual destination filename rather than the Content-Disposition header (and avoid deriving the write path from the request URL), and restrict state-changing Templately REST routes to an appropriate administrator-level capability.
Published: 2026-08-15
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows an authenticated attacker with contributor-level access to upload a file that bypasses WordPress’ file type validation by exploiting a mismatch between the filename used for validation and the destination filename. A GIF+PHP polyglot file is accepted as an image/gif based on the Content-Disposition header while the file is actually written with a .php extension derived from the URL path. This allows execution of arbitrary PHP code on the server, effectively granting remote code execution. The weakness is a classic file upload validation flaw (CWE-434).

Affected Systems

WordPress sites running the Templately – Elementor & Gutenberg Template Library plugin ver. 3.7.1 or earlier (up to and including version 3.7.1) are affected. The plugin is authored by wpdevteam. No higher versions are listed as affected in this data.

Risk and Exploitability

The CVSS score of 8.8 reflects a high severity with potential compromise of confidentiality, integrity, and availability. The EPSS score of < 1% indicates that, at the time of analysis, the likelihood of exploitation is low, though not zero. The vulnerability is not yet listed in CISA KEV. The attack vector relies on REST API endpoints that are protected only by delete_posts capability checks, so any user with contributor privileges can exploit it. The attacker must be authenticated and has sufficient permissions to use the cloud import functions exposed by the plugin.

Generated by OpenCVE AI on August 15, 2026 at 15:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Templately plugin to version 3.7.2 or later, which includes a fix for the filename validation and restrictions on REST API capabilities.
  • If an update cannot be applied immediately, block or remove the cloud import endpoints (/templately/v1/clouds/upload and /templately/v1/insert) for non‑admin users using a security plugin or .htaccess rules.
  • Adjust user roles so that contributors do not possess the unfiltered_upload capability, ensuring that file uploads are only possible for administrators.
  • If endpoint modification is impractical, consider deactivating the Templately plugin until a patched version is available.

Generated by OpenCVE AI on August 15, 2026 at 15:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
Link Providers
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/API/API.php#L128 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/API/Import.php#L78 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/API/MyClouds.php#L103 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/Core/Importer/WPImport.php#L1200 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/Core/Importer/WPImport.php#L1391 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/Core/Importer/WPImport.php#L1423 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.6.5/includes/Core/Platform/Gutenberg.php#L177 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/API/API.php#L128 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/API/Import.php#L78 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/API/MyClouds.php#L103 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/Core/Importer/WPImport.php#L1200 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/Core/Importer/WPImport.php#L1391 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/Core/Importer/WPImport.php#L1423 cve-icon cve-icon
https://plugins.trac.wordpress.org/browser/templately/tags/3.7.1/includes/Core/Platform/Gutenberg.php#L177 cve-icon cve-icon
https://plugins.trac.wordpress.org/changeset/3636643/templately/trunk/includes/Core/Importer/WPImport.php cve-icon cve-icon
https://plugins.trac.wordpress.org/changeset?old_path=%2Ftemplately/tags/3.7.1&new_path=%2Ftemplately/tags/3.7.2 cve-icon cve-icon
https://plugins.trac.wordpress.org/changeset?reponame=&new=3636643%40templately%2Ftags%2F3.7.2&old=3624408%40templately%2Ftags%2F3.7.1 cve-icon cve-icon
https://www.wordfence.com/threat-intel/vulnerabilities/id/4e68b2f2-12e4-4ff2-919d-26d6b21acd03?source=cve cve-icon cve-icon
History

Mon, 17 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 17 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
First Time appeared Wordpress
Wordpress wordpress
Wpdevteam
Wpdevteam templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud!
Vendors & Products Wordpress
Wordpress wordpress
Wpdevteam
Wpdevteam templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud!

Sat, 15 Aug 2026 09:45:00 +0000

Type Values Removed Values Added
Description The Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 3.7.1 via the fetch_remote_file function. This is due to a filename validation/destination mismatch in fetch_remote_file, where file type validation is performed against the attacker-controlled Content-Disposition filename rather than the URL-path-derived destination filename. This makes it possible for authenticated attackers, with contributor-level access and above, to execute code on the server. A GIF+PHP polyglot file passes wp_check_filetype_and_ext validation as image/gif via the Content-Disposition filename, while the actual destination path is written with a .php extension derived from the URL path, bypassing the unfiltered_upload capability gate entirely. The affected endpoints are reachable at this privilege level because Templately's entire REST API — including the cloud import endpoints used in this attack (/templately/v1/clouds/upload and /templately/v1/insert) — is authorized only by a current_user_can('delete_posts') check, with no administrator or manage_options capability requirement. The same permission gate also allows a contributor to overwrite the site's global Templately cloud connection via the /templately/v1/login endpoint with global_signin set to true. A complete remediation should both correct fetch_remote_file to validate the file type against the actual destination filename rather than the Content-Disposition header (and avoid deriving the write path from the request URL), and restrict state-changing Templately REST routes to an appropriate administrator-level capability.
Title Templately <= 3.7.1 - Authenticated (Contributor+) Arbitrary File Upload to Remote Code Execution via Gutenberg Cloud Import Attachment Filename Mismatch
Weaknesses CWE-434
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Wordpress Wordpress
Wpdevteam Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud!
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-08-17T19:38:56.823Z

Reserved: 2026-07-30T20:22:04.692Z

Link: CVE-2026-18438

cve-icon Vulnrichment

Updated: 2026-08-17T19:28:52.905Z

cve-icon NVD

Status : Deferred

Published: 2026-08-15T10:16:29.413

Modified: 2026-08-20T12:48:10.287

Link: CVE-2026-18438

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-17T10:59:35Z

Weaknesses
  • CWE-434

    Unrestricted Upload of File with Dangerous Type