<?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>@Rvf/Core — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@rvf/core/</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>Mon, 11 May 2026 16:11:06 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@rvf/core/feed.xml" rel="self" type="application/rss+xml"/><item><title>@rvf/set-get Prototype Pollution via Form Data Processing (CVE-2026-44483)</title><link>https://feed.craftedsignal.io/briefs/2026-05-rvf-prototype-pollution/</link><pubDate>Mon, 11 May 2026 16:11:06 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-rvf-prototype-pollution/</guid><description>The `@rvf/set-get` library, used by `@rvf/core`, is vulnerable to prototype pollution via form data processing; the `setPath` function does not block the keys `__proto__`, `constructor`, or `prototype` when walking a path, allowing attackers to set arbitrary properties on `Object.prototype` of the running server process via HTTP form submissions (CVE-2026-44483).</description><content:encoded><![CDATA[<p>The <code>@rvf/set-get</code> library, a dependency of <code>@rvf/core</code>, is vulnerable to a prototype pollution attack. This vulnerability arises due to the <code>setPath</code> function failing to sanitize or block the <code>__proto__</code>, <code>constructor</code>, and <code>prototype</code> keys during path traversal. This flaw allows an attacker to manipulate the <code>Object.prototype</code> of the server process by submitting malicious form data to an application using <code>@rvf/core</code> for form processing. The vulnerability is present in <code>@rvf/set-get</code> versions prior to <code>7.0.2</code> (7.x line) and <code>6.0.4</code> (6.x line), and is reachable through <code>@rvf/core</code> versions that depend on a vulnerable <code>@rvf/set-get</code>, like the current <code>8.1.0</code> which resolves to <code>7.0.1</code> by default. This issue allows attackers to inject arbitrary properties, potentially leading to privilege escalation, denial-of-service, or configuration manipulation.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts an HTTP POST request containing form data.</li>
<li>The form data includes a field name designed for prototype pollution, such as <code>__proto__[polluted]=yes</code>.</li>
<li>The request is sent to a Remix or React Router application that uses <code>@rvf/core</code> to handle form data.</li>
<li>The <code>parseFormData</code> function within <code>@rvf/core</code> processes the incoming form data.</li>
<li><code>parseFormData</code> calls <code>preprocessFormData</code> which uses the vulnerable <code>setPath</code> function from <code>@rvf/set-get</code> to flatten the form data into a nested object.</li>
<li><code>setPath</code> fails to block the <code>__proto__</code> key, allowing the attacker-controlled value to be written to <code>Object.prototype</code>.</li>
<li>Every plain object created in the server process subsequently inherits the polluted property.</li>
<li>This pollution can be exploited to bypass security checks, modify application behavior, or cause a denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to set arbitrary properties on the <code>Object.prototype</code> of the server process via a single, unauthenticated HTTP request. This pollution persists for the life of the worker process, affecting every subsequent request handled by the same process. The direct consequences depend on the host application and its dependencies. However, typical risks include bypassing authentication checks (<code>if (obj.isAdmin)</code>), injecting unintended configuration values, breaking template rendering, and crashing the worker process. The vulnerability leaves no obvious trace in request logs, as the malicious key is not present in the visible output of <code>preprocessFormData</code>.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>@rvf/set-get</code> version <code>7.0.2</code> or <code>6.0.4</code> to patch CVE-2026-44483.</li>
<li>If a direct upgrade of <code>@rvf/core</code> is not feasible, use <code>npm</code> or <code>pnpm</code> overrides to force the resolution of <code>@rvf/set-get</code> to a patched version.</li>
<li>Deploy the Sigma rules in this brief to detect potential exploitation attempts by looking for requests with malicious field names in HTTP request logs.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>prototype-pollution</category><category>web-application</category><category>javascript</category></item></channel></rss>