<?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>Stored-Xss — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/stored-xss/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Sun, 03 May 2026 06:15:57 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/stored-xss/feed.xml" rel="self" type="application/rss+xml"/><item><title>NEX-Forms WordPress Plugin Vulnerable to Stored Cross-Site Scripting (CVE-2026-5063)</title><link>https://feed.craftedsignal.io/briefs/2026-05-wordpress-nex-forms-xss/</link><pubDate>Sun, 03 May 2026 06:15:57 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-wordpress-nex-forms-xss/</guid><description>The NEX-Forms WordPress plugin is vulnerable to stored XSS via POST parameter key names, allowing unauthenticated attackers to inject arbitrary web scripts.</description><content:encoded><![CDATA[<p>The NEX-Forms – Ultimate Forms Plugin for WordPress, versions up to and including 9.1.11, is susceptible to a stored Cross-Site Scripting (XSS) vulnerability (CVE-2026-5063). This flaw stems from inadequate input sanitization and output escaping within the <code>submit_nex_form()</code> function. Unauthenticated attackers can exploit this vulnerability by injecting malicious JavaScript code through POST parameter key names. Successful exploitation allows the attacker to execute arbitrary scripts in the context of a user&rsquo;s browser when they access a page containing the injected script, potentially leading to session hijacking, defacement, or redirection to malicious sites. The vulnerability was reported to Wordfence and a patch has been released.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker crafts a malicious HTTP POST request to a WordPress page that utilizes the vulnerable NEX-Forms plugin.</li>
<li>The POST request includes specially crafted parameter key names designed to inject JavaScript code.</li>
<li>The <code>submit_nex_form()</code> function processes the POST request without properly sanitizing or escaping the malicious input.</li>
<li>The injected JavaScript code is stored in the WordPress database.</li>
<li>A legitimate user accesses a page where the form data, including the malicious script, is displayed.</li>
<li>The stored JavaScript code executes within the user&rsquo;s browser in the context of the WordPress page.</li>
<li>The attacker can then perform actions such as stealing cookies, redirecting the user, or modifying the page content.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this stored XSS vulnerability allows an unauthenticated attacker to inject arbitrary JavaScript code into pages using the NEX-Forms plugin. This can lead to various malicious outcomes, including user session hijacking, website defacement, or redirection to phishing sites. As the vulnerability is stored, every user who visits a page containing the malicious script will be affected until the vulnerability is patched and the malicious input is removed. The severity is rated as HIGH with a CVSS base score of 7.2.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the NEX-Forms – Ultimate Forms Plugin for WordPress to a version beyond 9.1.11 to patch CVE-2026-5063.</li>
<li>Deploy the Sigma rule <code>Detect Suspicious NEX-Forms POST Requests</code> to identify potential exploitation attempts.</li>
<li>Monitor web server logs for suspicious POST requests containing potentially malicious JavaScript code in parameter names.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>wordpress</category><category>xss</category><category>stored-xss</category><category>cve-2026-5063</category></item><item><title>Gravity Forms Plugin Stored XSS Vulnerability (CVE-2026-5113)</title><link>https://feed.craftedsignal.io/briefs/2026-05-gravityforms-xss/</link><pubDate>Sat, 02 May 2026 06:16:04 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-gravityforms-xss/</guid><description>The Gravity Forms plugin for WordPress is vulnerable to stored cross-site scripting (XSS) via Consent field hidden inputs, allowing unauthenticated attackers to inject arbitrary web scripts that execute when an administrator views the entries list page.</description><content:encoded><![CDATA[<p>The Gravity Forms plugin for WordPress, a popular form builder, contains a stored cross-site scripting (XSS) vulnerability identified as CVE-2026-5113. This flaw affects versions up to and including 2.10.0. The vulnerability stems from a flawed state validation mechanism combined with insufficient output escaping within the Consent field&rsquo;s hidden inputs. An unauthenticated attacker can exploit this by injecting malicious JavaScript code into form entries. This malicious code is then executed when an authenticated administrator accesses the Entries List page within the WordPress administration panel, potentially leading to account compromise or other malicious actions performed within the administrator&rsquo;s session. Successful exploitation allows attackers to execute arbitrary web scripts in the context of an administrator&rsquo;s browser.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An unauthenticated attacker crafts a malicious payload containing XSS code within a Gravity Forms Consent field. The payload leverages HTML tags like <code>&lt;svg&gt;</code> that <code>wp_kses()</code> will strip.</li>
<li>The attacker submits the crafted form entry to the WordPress site.</li>
<li>The Gravity Forms plugin&rsquo;s state validation mechanism calculates two hashes: one for the raw input and another after sanitization via <code>wp_kses()</code>.</li>
<li>Due to the nature of the XSS payload, the <code>wp_kses()</code> function strips the <code>&lt;svg&gt;</code> tag, resulting in a matching hash for the sanitized input.</li>
<li>The flawed validation logic fails to detect the malicious intent because at least one hash matches the original state, allowing the malicious raw value (containing the XSS payload) to be stored in the database.</li>
<li>An authenticated administrator logs into the WordPress administration panel.</li>
<li>The administrator navigates to the Entries List page for the affected Gravity Form.</li>
<li>The stored malicious consent label is retrieved from the database and output without proper escaping, causing the XSS payload to execute within the administrator&rsquo;s browser session.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-5113 allows unauthenticated attackers to execute arbitrary web scripts within the context of an authenticated administrator&rsquo;s browser session. This can lead to a variety of malicious outcomes, including account compromise, data theft, modification of website content, or further propagation of the attack to other administrative users. The severity of the impact depends on the privileges held by the compromised administrator account.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the Gravity Forms plugin to the latest version, which includes a fix for CVE-2026-5113.</li>
<li>Implement a Web Application Firewall (WAF) rule to filter out requests containing potentially malicious XSS payloads targeting the Gravity Forms Consent field.</li>
<li>Monitor web server logs for suspicious activity related to form submissions containing encoded or obfuscated JavaScript code. Analyze HTTP request parameters for unusual characters or patterns indicative of XSS attempts.</li>
<li>Enable output escaping on form entries to prevent stored XSS attacks.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>xss</category><category>wordpress</category><category>gravityforms</category><category>cve-2026-5113</category><category>stored-xss</category></item><item><title>livewire-markdown-editor Arbitrary File Upload Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-02-livewire-markdown-editor-upload/</link><pubDate>Tue, 02 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-02-livewire-markdown-editor-upload/</guid><description>The livewire-markdown-editor versions before v1.3 contain an arbitrary file upload vulnerability in the MarkdownEditor::updatedAttachments() Livewire handler, allowing authenticated users to upload any file type, potentially leading to stored XSS, phishing, malware distribution, and markdown injection.</description><content:encoded><![CDATA[<p>Versions of <code>mckenziearts/livewire-markdown-editor</code> prior to v1.3 are vulnerable to arbitrary file upload via the <code>MarkdownEditor::updatedAttachments()</code> Livewire handler. This handler lacks server-side validation for file types, extensions, and content. An authenticated user with access to a page embedding the markdown editor can upload malicious files (e.g., <code>.html</code>, <code>.svg</code>, <code>.js</code>) to the disk configured by <code>livewire-markdown-editor.disk</code>. If this disk is a public cloud storage bucket (S3, DigitalOcean Spaces, Cloudflare R2, Scaleway Object Storage), the uploaded files are publicly accessible with a guessed <code>Content-Type</code> header. This vulnerability allows attackers to perform stored XSS, host phishing pages, distribute malware, and inject malicious markdown. A real-world exploitation was observed in production.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains access to an application using a vulnerable version of <code>mckenziearts/livewire-markdown-editor</code>.</li>
<li>The attacker navigates to a page embedding the <code>&lt;livewire:markdown-editor&gt;</code> component.</li>
<li>The attacker uses the file upload functionality of the editor to upload a malicious file, such as a <code>.html</code> or <code>.svg</code> file containing XSS payloads.</li>
<li>The <code>MarkdownEditor::updatedAttachments()</code> Livewire handler processes the uploaded file without proper validation.</li>
<li>The handler stores the file on the disk configured by <code>livewire-markdown-editor.disk</code> (e.g., a public cloud bucket like S3, DigitalOcean Spaces, Cloudflare R2, Scaleway Object Storage).</li>
<li>The uploaded file becomes publicly accessible on the storage domain.</li>
<li>A user visits the URL of the uploaded malicious file, triggering the XSS payload or accessing the phishing page.</li>
<li>The attacker achieves their objective, such as stealing user credentials, redirecting users to malicious websites, or compromising the application&rsquo;s integrity.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can lead to several critical impacts. Stored XSS on the storage domain can allow attackers to steal user credentials or perform other malicious actions in the context of the application. Phishing pages hosted on the application&rsquo;s storage domain can trick users into revealing sensitive information. Malware distribution from a domain users trust can lead to widespread infections. Additionally, markdown injection via crafted filenames can compromise the integrity of the editor&rsquo;s output. A real-world exploitation of this vulnerability was observed in production on a community platform using this package.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>mckenziearts/livewire-markdown-editor</code> v1.3 or later to patch the vulnerability.</li>
<li>If immediate upgrading is not feasible, disable the upload UI on every instance of the editor by passing <code>:show-upload=&quot;false&quot;</code>. This prevents the vulnerable code path from being reached.</li>
<li>Monitor web server logs (category <code>webserver</code>, product <code>linux</code>) for requests to the storage domain for unusual file extensions like <code>.html</code>, <code>.svg</code>, <code>.js</code>, <code>.php</code>, or <code>.exe</code>, which could indicate attempted exploitation.</li>
<li>Implement the file upload detection rule to identify potentially malicious file uploads to the storage domain.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>arbitrary-file-upload</category><category>stored-xss</category><category>vulnerability</category></item></channel></rss>