CVE-2026-9145

Database for Contact Form 7, WPforms, Elementor forms <= 1.5.1 - Unauthenticated Arbitrary File Copy/Upload via Elementor Pro Form Upload Field 'raw_value'

Strategic Overview

Status
Patched in 1.5.2
Affected Version
<= 1.5.1
CVSS
6.5Medium
Weakness type
CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
CVE
CVE-2026-9145
View all Database for Contact Form 7, WPforms, Elementor forms vulnerabilities

At a glance

CVE-2026-9145 is a medium-severity Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in the Database for Contact Form 7, WPforms, Elementor forms WordPress plugin, affecting versions <= 1.5.1. It carries a CVSS score of 6.5 (reachable over the network; high confidentiality impact). Exploitation requires no authentication. The issue is fixed in version 1.5.2; sites on affected versions should update now. Disclosed July 2026, reported by Jonah Burgess (CryptoCat).

Vulnerability Overview

The Database for Contact Form 7, WPforms, Elementor forms plugin for WordPress is vulnerable to Arbitrary File Copy via the create_entry_el() function in versions up to, and including, 1.5.1. The function reads raw_value from Elementor Pro's Form_Record object for upload-type fields and passes it directly to PHP's copy() without validating that the value corresponds to a legitimately uploaded file — when no file is present in $_FILES, raw_value reflects the attacker-controlled POST string. copy() accepts both local filesystem paths and URL sources, so the attacker can target any file readable by the PHP process or supply an attacker-controlled remote URL. Elementor Pro is a prerequisite for triggering the code path (it owns the elementor_pro/forms/new_record hook and populates the Form_Record object), but the bug itself is entirely in Contact Form Entries' handler. This could allow unauthenticated attackers to disclose arbitrary files on the affected site's server. The file is copied to a directory unknown to the attacker; the hashed directory name provides defense-in-depth but is generated from non-cryptographic sources (uniqid() + rand()) and should not be relied upon as the primary mitigation.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality.

CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Database for Contact Form 7, WPforms, Elementor forms <= 1.5.1 carries this weakness at create_entry_el(), and reaching it takes no account at all. Path traversal happens when user-controlled text is used to build a filesystem path without being constrained to an intended directory, so sequences like ../ walk the resolved path somewhere else.

Depending on the operation, it means reading files outside the intended folder — wp-config.php being the usual target — or writing to and deleting paths the web server can touch. For Database for Contact Form 7, WPforms, Elementor forms the fix is 1.5.2: builds <= 1.5.1 are affected, anything from 1.5.2 onward is not.

Remediation

Update to version 1.5.2, or a newer patched version

How does WordSec protect against this?

Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: Database for Contact Form 7, WPforms, Elementor forms 1.5.2 closes this, and updating the plugin is the step that ends it.

  • Firewall
  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C