What the vulnerability does
01Description
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.
Explanation of Vulnerability in Simple Terms
02Summary
The weForms contact form plugin for WordPress contains a stored cross-site scripting (XSS) vulnerability in versions up to 1.6.27. An authenticated attacker with low privileges can inject malicious scripts into form fields that execute in the browsers of other users, including site administrators. The vulnerability affects the plugin's form builder interface and can impact site integrity and user data.
What an attacker can do
03Attacker Capabilities
Inject malicious scripts that run in other users' browsers when they view or edit forms.
Potential impact on your site
04Site Impact
Attackers can steal admin session tokens, modify site content, or redirect users to malicious sites via injected scripts.
Conditions required to exploit
05Prerequisites
Attacker must have a WordPress user account with low-level permissions (e.g., contributor or subscriber role).
Key dates
06Disclosure timeline
March 11, 2026
CVE published
April 8, 2026
Record updated