<?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:openjsf:multer:2.3.0:*:*:*:*:node.js:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3aopenjsfmulter2.3.0node.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 04:18:39 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3aopenjsfmulter2.3.0node.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>OpenJS Foundation multer: Unauthenticated process crash via async fileFilter (CVE-2026-113872)</title><link>https://feed.craftedsignal.io/briefs/2026-10-multer-denial-of-service/</link><pubDate>Fri, 23 Oct 2026 04:18:39 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-multer-denial-of-service/</guid><description>An unauthenticated attacker can crash Node.js applications using multer versions 2.0.0 through 2.4.0 by sending crafted multipart requests that trigger uncaught exceptions in the busboy parser after request teardown.</description><content:encoded><![CDATA[<p>A denial-of-service vulnerability exists in the multer middleware for Node.js (CVE-2026-113872). The vulnerability occurs when multer is configured with an asynchronous <code>fileFilter</code> and processes requests containing multiple files. If an earlier part of the multipart request triggers an error, the request teardown removes event listeners from the underlying busboy parser. If a subsequent asynchronous <code>fileFilter</code> completes after the teardown, it forces the parser to resume processing a truncated or malformed body. This triggers an error on the busboy instance that no longer has an error listener, resulting in an uncaught exception that terminates the Node.js process.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies an Express application using <code>multer</code> (&gt;= 2.0.0, &lt;= 2.4.0) with an asynchronous <code>fileFilter</code>.</li>
<li>Attacker initiates a multipart/form-data request containing at least two file parts.</li>
<li>Attacker triggers a failure on the first file part (e.g., via the <code>fileFilter</code> logic) to initiate the request teardown process.</li>
<li>The application performs teardown, calling <code>busboy.removeAllListeners()</code>.</li>
<li>The attacker's second, pending <code>fileFilter</code> completes after the teardown occurs.</li>
<li>The <code>fileStream.resume()</code> call triggers the busboy parser to process the buffered input.</li>
<li>The parser encounters an error (e.g., unexpected end of form) and emits it on the busboy instance.</li>
<li>Due to the removed listeners, the error becomes an uncaught exception, crashing the Node.js process.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The vulnerability allows an unauthenticated remote attacker to cause a complete service disruption by crashing the target Node.js process with a single crafted HTTP request.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade <code>multer</code> to version <code>2.5.0</code> or later immediately.</li>
<li>If upgrading is not immediately possible, refactor the <code>fileFilter</code> to be synchronous and move any asynchronous validation logic into the route handler following the multer middleware.</li>
</ul>
]]></content:encoded><category domain="severity">low</category><category domain="type">advisory</category></item></channel></rss>