<?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>Cpe:2.3:a:image-Downloader_project:image-Downloader:*:*:*:*:*:node.js:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3aimage-downloader_projectimage-downloadernode.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>Fri, 23 Oct 2026 16:37:25 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3aimage-downloader_projectimage-downloadernode.js/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>image-downloader: Path traversal arbitrary file write (CVE-2026-103648)</title><link>https://feed.craftedsignal.io/briefs/2026-10-cve-2026-103648-image-downloader/</link><pubDate>Fri, 23 Oct 2026 16:37:25 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-cve-2026-103648-image-downloader/</guid><description>A critical path traversal vulnerability in the npm package image-downloader allows attackers to perform arbitrary file writes by providing a specially crafted percent-encoded URL.</description><content:encoded><![CDATA[<p>CVE-2026-103648 is a critical path traversal vulnerability in the 'image-downloader' npm package. The vulnerability exists due to incorrect ordering of filename processing: the library calls <code>path.basename()</code> on a URL path before <code>decodeURIComponent()</code>. An attacker can supply a percent-encoded path traversal sequence (e.g., <code>%2e%2e%2f</code>) that bypasses the basename check, only to be decoded into a functional <code>../</code> sequence during path construction. This results in the application writing files outside the intended destination directory.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a target application using <code>image-downloader</code> that accepts user-supplied URLs for image processing.</li>
<li>Attacker hosts a malicious server or redirects a request to a controlled URL path.</li>
<li>Attacker crafts a URL path containing percent-encoded traversal sequences (e.g., <code>/%2e%2e%2f%2e%2e%2fetc/passwd</code>).</li>
<li>The vulnerable <code>image-downloader</code> package calls <code>path.basename()</code> on the encoded path, which fails to strip the traversal sequences because they contain no literal slashes.</li>
<li>The library calls <code>decodeURIComponent()</code>, resolving the percent-encoded sequences into literal <code>../</code> traversal strings.</li>
<li><code>path.join()</code> concatenates the destination directory and the decoded traversal, resulting in a write operation outside the restricted directory.</li>
<li>The application writes the content from the attacker-controlled URL to the chosen target path on the host filesystem.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for arbitrary file writes on the host system. Depending on the environment and filesystem permissions, this can lead to remote code execution by overwriting configuration files, startup scripts, or authentication-related files such as <code>.ssh/authorized_keys</code>.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade <code>image-downloader</code> to version 4.3.1 or later immediately.</li>
<li>Audit applications utilizing the <code>image-downloader</code> library to ensure that user-supplied URLs are strictly validated or passed through a blocklist of traversal characters before processing.</li>
<li>Implement filesystem sandboxing or run processes with the principle of least privilege to limit the impact of potential arbitrary file write vulnerabilities.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>vulnerability</category><category>path-traversal</category><category>npm</category><category>rce</category></item></channel></rss>