CVE-2026-2707: weForms (WordPress plugin) · Cross-site Scripting
Affects weForms (WordPress plugin)Source CVE Database V5
Not known to be exploited · CVSS 6.4 Medium.
Data as of 30 Oct 2026, 11:52 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 12% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 11 Mar 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| boldgridweForms – Easy Drag & Drop Contact Form Builder For WordPress | Affected
| Fixed in– |
AI-suggested
Until a fix is available, restrict REST API access to trusted users only and avoid granting Subscriber-level or higher privileges to untrusted users. Administrators should be cautious when viewing form entries submitted via the REST API. Monitor official boldgrid advisories for updates and patches.
Description
The weForms plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the REST API entry submission endpoint in all versions up to, and including, 1.6.27. This is due to inconsistent input sanitization between the frontend AJAX handler and the REST API endpoint. When entries are submitted via the REST API (`/wp-json/weforms/v1/forms/{id}/entries/`), the `prepare_entry()` method in `class-abstract-fields.php` receives the WP_REST_Request object as `$args`, bypassing the `weforms_clean()` fallback that sanitizes `$_POST` data for frontend submissions. The base field handler only applies `trim()` to the value. This makes it possible for authenticated attackers, with Subscriber-level access and above, to inject arbitrary web scripts into form entry hidden field values via the REST API that execute when an administrator views the form entries page, where data is rendered using a Vue.js `v-html` directive without escaping.
References
- wordfence.com/threat-intel/vulnerabilities/id/e97854ca-b24f-4893-862d-f8e975752175?source=cve (opens in a new tab)
- plugins.trac.wordpress.org/browser/weforms/tags/1.6.27/includes/fields/class-abstract-fields.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/weforms/tags/1.6.27/assets/js-templates/spa-components.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/weforms/trunk/includes/fields/class-abstract-fields.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/weforms/trunk/assets/js-templates/spa-components.php (opens in a new tab)
- github.com/BoldGrid/weforms/pull/263 (opens in a new tab)
- plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3475812%40weforms%2Ftrunk&old=3457241%40weforms%2Ftrunk&sfp_email=&sfph_mail= (opens in a new tab)