HighGHSA-455w-c45v-86rgCVE-2022-39288
fastify vulnerable to denial of service via malicious Content-Type
Published 11 Oct 2022 · Updated 8 Nov 2023
Affected package
fastifynpm
- Affected
- >=4.0.0 <4.8.1
- Fixed in
- 4.8.1
Update to the fixed version for your release line, for example:
npm install fastify@4.8.1Details
Impact
An attacker can send an invalid Content-Type header that can cause the application to crash, leading to a possible Denial of Service attack. Only the v4.x line is affected.
(This was updated: upon a close inspection, v3.x is not affected after all).
Patches
Yes, update to > v4.8.0.
Workarounds
You can reject the malicious content types before the body parser enters in action.
const badNames = Object.getOwnPropertyNames({}.__proto__)
fastify.addHook('onRequest', async (req, reply) => {
for (const badName of badNames) {
if (req.headers['content-type'].indexOf(badName) > -1) {
reply.code(415)
throw new Error('Content type not supported')
}
}
})References
See the HackerOne report #1715536
For more information
Is GHSA-455w-c45v-86rg in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected fastify, and gives you the command that fixes it.
References
- Linkgithub.com/fastify/fastify/security/advisories/GHSA-455w-c45v-86rg
- Advisorynvd.nist.gov/vuln/detail/CVE-2022-39288
- Linkgithub.com/fastify/fastify/commit/fbb07e8dfad74c69cd4cd2211aedab87194618e3
- Packagegithub.com/fastify/fastify
- Linkgithub.com/fastify/fastify/security/policy
- Linkhackerone.com/bugs?report_id=1715536&subject=fastify
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.