<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Gravity Forms (&lt;= 3.0.2) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/gravity-forms--3.0.2/</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>Tue, 01 Sep 2026 15:07:06 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/gravity-forms--3.0.2/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Arbitrary File Upload Vulnerability in Gravity Forms</title><link>https://feed.craftedsignal.io/briefs/2026-09-gravity-forms-arbitrary-upload/</link><pubDate>Tue, 01 Sep 2026 15:07:06 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-gravity-forms-arbitrary-upload/</guid><description>An arbitrary file upload vulnerability in the Gravity Forms WordPress plugin (&lt;= 3.0.2) allows unauthenticated attackers to write arbitrary files to the temporary upload directory, potentially leading to remote code execution or stored XSS.</description><content:encoded><![CDATA[<p>Gravity Forms versions up to and including 3.0.2 contain a critical vulnerability in the <code>GFAsyncUpload::upload()</code> function. The flaw stems from insufficient validation of multi-file upload chunk state, allowing the reuse of public form state URL hashes as chunk continuation hashes. Attackers can leverage this to influence the temporary filename used during the upload process.</p>
<p>When a public-facing form includes a File Upload field with the &quot;Multiple Files&quot; option enabled, an unauthenticated attacker can upload files to the plugin's temporary storage directory. On web servers that do not honor <code>.htaccess</code> files (e.g., NGINX), this allows for the upload of executable PHP code, resulting in remote code execution. In environments where the plugin successfully places a <code>.htaccess</code> file to block PHP execution, the vulnerability still allows for stored cross-site scripting (XSS) if an attacker uploads malicious HTML files that are subsequently accessed by users.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a WordPress site running a vulnerable version of Gravity Forms (&lt;= 3.0.2).</li>
<li>Attacker discovers a public form containing a File Upload field with &quot;Multiple Files&quot; enabled.</li>
<li>Attacker crafts a malicious payload (e.g., PHP polyglot or malicious HTML).</li>
<li>Attacker performs a multipart file upload request to the <code>GFAsyncUpload::upload()</code> endpoint.</li>
<li>Attacker manipulates the chunk continuation hash to control the destination filename in the temporary upload directory.</li>
<li>Server processes the request and writes the malicious file to the storage directory.</li>
<li>Attacker navigates to the file URL to trigger execution (RCE) or XSS.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation can lead to full remote code execution on the underlying server if it does not properly restrict execution in the temporary directory. In secondary scenarios, attackers can achieve stored XSS, allowing for session hijacking or further compromise of authenticated administrative users.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized actions for the detection engineering and security operations teams:</p>
<ul>
<li>Upgrade the Gravity Forms plugin to the latest patched version immediately.</li>
<li>Implement a web application firewall (WAF) rule to block POST requests to Gravity Forms upload endpoints that contain suspicious filename extensions (e.g., .php, .html, .js) if upgrading is delayed.</li>
<li>Audit the temporary upload directory for unauthorized files, particularly those with executable extensions.</li>
<li>Ensure the web server configuration explicitly denies execution of files in the Gravity Forms temporary upload directory.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>wordpress</category><category>vulnerability</category><category>rce</category><category>xss</category></item></channel></rss>