<?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>Velocity.js — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/velocity.js/</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>Sat, 09 May 2026 00:40:16 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/velocity.js/feed.xml" rel="self" type="application/rss+xml"/><item><title>Velocity.js Prototype Pollution Vulnerability via #set Directive (CVE-2026-44966)</title><link>https://feed.craftedsignal.io/briefs/2024-01-velocityjs-prototype-pollution/</link><pubDate>Sat, 09 May 2026 00:40:16 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-velocityjs-prototype-pollution/</guid><description>A prototype pollution vulnerability exists in Velocity.js versions 2.1.5 and earlier, allowing attackers to modify Object.prototype via crafted #set directives in Velocity templates, potentially leading to Denial of Service (DoS) or Remote Code Execution (RCE).</description><content:encoded><![CDATA[<p>A prototype pollution vulnerability has been identified in Velocity.js, specifically affecting versions 2.1.5 and earlier. The vulnerability, designated as CVE-2026-44966, stems from improper input validation within the <code>#set</code> directive&rsquo;s path assignment logic in Velocity templates. This flaw allows an attacker to manipulate the <code>Object.prototype</code> if they can influence the content of a Velocity template being rendered by an application. Successful exploitation could lead to a Denial of Service (DoS) or, depending on the server environment&rsquo;s configuration, Remote Code Execution (RCE). The vulnerability was reported on May 9, 2026. Applications utilizing Velocity.js to render templates based on user-supplied or externally influenced data are most at risk.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a Velocity template rendering endpoint within an application.</li>
<li>The attacker crafts a malicious Velocity template containing a <code>#set</code> directive that targets the <code>Object.prototype</code>. Specifically, the template includes a payload like <code>#set($__proto__.polluted = &quot;hacked&quot;)</code>.</li>
<li>The attacker injects the malicious template into the application, either by directly supplying the template content, manipulating template variables, or exploiting other injection points.</li>
<li>The Velocity engine processes the malicious template, and the <code>#set</code> directive is executed.</li>
<li>Due to the lack of input validation on the path within the <code>#set</code> directive, the engine directly assigns the attacker-controlled value to the <code>Object.prototype</code>.</li>
<li>The <code>Object.prototype</code> is now polluted, meaning all JavaScript objects inherit the attacker-defined property and value.</li>
<li>The application&rsquo;s behavior becomes unpredictable, potentially leading to a Denial of Service as the polluted prototype disrupts normal operations.</li>
<li>In certain environments, the prototype pollution can be chained with other vulnerabilities (e.g., gadget chains) to achieve Remote Code Execution (RCE).</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability allows an attacker to pollute the <code>Object.prototype</code> in Velocity.js applications. The impact of successful exploitation ranges from Denial of Service (DoS) to Remote Code Execution (RCE), depending on the specific environment and application logic. Any application using Velocity.js version 2.1.5 or earlier is potentially vulnerable if it renders templates that can be influenced by untrusted users. Prototype pollution can bypass security controls and cause unexpected application behavior.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of Velocity.js that addresses the prototype pollution vulnerability.</li>
<li>Sanitize user-supplied data used in Velocity templates to prevent the injection of malicious <code>#set</code> directives targeting <code>Object.prototype</code>.</li>
<li>Deploy the Sigma rule &ldquo;Detect Velocity.js Prototype Pollution Attempt via set Directive&rdquo; to identify attempts to exploit CVE-2026-44966 in web server logs.</li>
<li>Implement input validation on template variables to prevent the use of special characters like <code>__proto__</code> or <code>constructor</code> that could be used for prototype pollution.</li>
<li>Monitor web server logs for suspicious POST requests to Velocity template rendering endpoints with payloads containing <code>__proto__</code> in the query parameters, as detected by the Sigma rule.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>prototype-pollution</category><category>vulnerability</category><category>velocity.js</category><category>CVE-2026-44966</category></item></channel></rss>