<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>FormCraft Plugin (&lt;= 3.9.14) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/formcraft-plugin--3.9.14/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 23 Jul 2026 06:18:06 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/formcraft-plugin--3.9.14/feed.xml" rel="self" type="application/rss+xml"/><item><title>FormCraft WordPress Plugin Stored XSS Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-07-formcraft-xss/</link><pubDate>Thu, 23 Jul 2026 06:18:06 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-formcraft-xss/</guid><description>The FormCraft plugin for WordPress, specifically versions up to and including 3.9.14, is susceptible to a Stored Cross-Site Scripting (XSS) vulnerability (CVE-2026-7232) that allows unauthenticated attackers to inject arbitrary web scripts into web pages via manipulated form parameters due to insufficient input sanitization and output escaping, leading to script execution in users' browsers when accessing affected pages.</description><content:encoded><![CDATA[<p>A critical stored Cross-Site Scripting (XSS) vulnerability, identified as CVE-2026-7232, affects the FormCraft plugin for WordPress in all versions up to and including 3.9.14. This flaw enables unauthenticated attackers to inject malicious web scripts into form submissions, which are then stored and executed in users' browsers when they visit pages displaying the injected content. The vulnerability arises from inadequate input sanitization and output escaping. Attackers exploit two primary mechanisms: either by injecting payloads into composite matrix sub-field keys (such as <code>field2_0</code> or <code>field2_1</code>) which bypass server-side sanitization and are stored raw, or by submitting array-typed field values where initial <code>htmlentities()</code> encoding is later reversed by <code>html_entity_decode()</code> before storage. Additionally, client-side DOMPurify checks are bypassed as matrix values arrive as arrays, not strings, preventing effective sanitization before being injected into the Document Object Model (DOM).</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An unauthenticated attacker crafts a malicious HTTP POST request containing an XSS payload within a form parameter to a vulnerable FormCraft installation. This payload can target composite matrix sub-field keys (e.g., <code>field2_0=payload</code>) or array-typed field values.</li>
<li><strong>Vector 1 (Composite Matrix Keys):</strong> The FormCraft plugin processes the incoming form data. Specific composite matrix sub-field keys are processed without passing through the intended server-side sanitization routines.</li>
<li>The unsanitized XSS payload from these sub-field keys is directly inserted into the WordPress database via <code>$wpdb-&gt;insert()</code>.</li>
<li><strong>Vector 2 (Array-Typed Values):</strong> Alternatively, array-typed field values containing an XSS payload are initially encoded using <code>htmlentities()</code> during submission.</li>
<li>However, during later processing or preparation for storage/rendering, the <code>htmlentities()</code> encoding is reversed by <code>html_entity_decode()</code> at <code>formcraft-main.php:2608</code> and <code>:2122</code>, effectively restoring the malicious script.</li>
<li>The restored or unsanitized XSS payload is then stored in the database.</li>
<li>When a legitimate user accesses a WordPress page or post that displays the stored form submission data, the FormCraft plugin retrieves the malicious content. Client-side DOMPurify, designed for sanitization, is bypassed because the matrix values are rendered as arrays, not strings, preventing the sanitization logic from executing.</li>
<li>The malicious web script is then directly injected into the user's browser DOM and executes in their context, potentially leading to session hijacking, credential theft, or defacement.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-7232 allows unauthenticated attackers to perform stored Cross-Site Scripting (XSS) attacks. This can lead to a range of client-side impacts, including but not limited to, session hijacking, defacement of web pages, redirection to malicious sites, and theft of sensitive user information such as cookies or login credentials. The widespread use of WordPress and the FormCraft plugin means a broad attack surface, with any user accessing an affected page becoming a potential victim of the injected scripts, regardless of their privileges.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch CVE-2026-7232 immediately by updating the FormCraft WordPress plugin to version 3.9.15 or later.</li>
<li>Deploy the Sigma rule &quot;Detect CVE-2026-7232 Exploitation - FormCraft Stored XSS Injection&quot; to your SIEM to identify attempts at injecting malicious scripts through FormCraft forms.</li>
<li>Monitor <code>webserver</code> logs for HTTP POST requests to WordPress AJAX or form submission endpoints that contain suspicious XSS payloads in query parameters matching the <code>fieldN_M</code> pattern described in the attack chain.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>wordpress</category><category>xss</category><category>plugin</category><category>web-application</category></item></channel></rss>