📦 chore(deps): Update dependency fastify to v5.8.5 [SECURITY]#227
Open
renovate[bot] wants to merge 1 commit into
Open
📦 chore(deps): Update dependency fastify to v5.8.5 [SECURITY]#227renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
ee8e8eb to
8d64e72
Compare
8d64e72 to
231d1ba
Compare
231d1ba to
1e39736
Compare
1e39736 to
552489b
Compare
552489b to
0cb0679
Compare
0cb0679 to
f99ace8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.7.3→5.8.5Fastify vulnerable to invalid content-type parsing, which could lead to validation bypass
CVE-2025-32442 / GHSA-mg2h-6x62-wpwc
More information
Details
Impact
In applications that specify different validation strategies for different content types, it's possible to bypass the validation by providing a slightly altered content type such as with different casing or altered whitespacing before
;.Users using the the following pattern are affected:
User using the following pattern are not affected:
Patches
This was patched in v5.3.1, but unfortunately it did not cover all problems. This has been fully patched in v5.3.2.
Version v4.9.0 was also affected by this issue. This has been fully patched in v4.9.1.
Workarounds
Do not specify multiple content types in the schema.
References
Are there any links users can visit to find out more?
https://hackerone.com/reports/3087928
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Fastify Vulnerable to DoS via Unbounded Memory Allocation in sendWebStream
CVE-2026-25224 / GHSA-mrq3-vjjr-p77c
More information
Details
Impact
A Denial of Service vulnerability in Fastify’s Web Streams response handling can allow a remote client to exhaust server memory. Applications that return a
ReadableStream(orResponsewith a Web Stream body) viareply.send()are impacted. A slow or non-reading client can trigger unbounded buffering when backpressure is ignored, leading to process crashes or severe degradation.Patches
The issue is fixed in Fastify 5.7.3. Users should upgrade to 5.7.3 or later.
Workarounds
Avoid sending Web Streams from Fastify responses (e.g.,
ReadableStreamorResponsebodies). Use Node.js streams (stream.Readable) or buffered payloads instead until the project can upgrade.References
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Fastify's Content-Type header tab character allows body validation bypass
CVE-2026-25223 / GHSA-jx2c-rxcm-jvmq
More information
Details
Impact
A validation bypass vulnerability exists in Fastify where request body validation schemas specified by Content-Type can be completely circumvented. By appending a tab character (
\t) followed by arbitrary content to the Content-Type header, attackers can bypass body validation while the server still processes the body as the original content type.For example, a request with
Content-Type: application/json\tawill bypass JSON schema validation but still be parsed as JSON.This vulnerability affects all Fastify users who rely on Content-Type-based body validation schemas to enforce data integrity or security constraints. The concrete impact depends on the handler implementation and the level of trust placed in the validated request body, but at the library level, this allows complete bypass of body validation for any handler using Content-Type-discriminated schemas.
This issue is a regression or missed edge case from the fix for a previously reported vulnerability.
Patches
This vulnerability has been patched in Fastify v5.7.2. All users should upgrade to this version or later immediately.
Workarounds
If upgrading is not immediately possible, user can implement a custom
onRequesthook to reject requests containing tab characters in the Content-Type header:Resources
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Fastify's Missing End Anchor in "subtypeNameReg" Allows Malformed Content-Types to Pass Validation
CVE-2026-3419 / GHSA-573f-x89g-hqp9
More information
Details
Description
Fastify incorrectly accepts malformed
Content-Typeheaders containing trailing characters after the subtype token, in violation of RFC 9110 §8.3.1. For example, a request sent withContent-Type: application/json garbagepasses validation and is processed normally, rather than being rejected with415 Unsupported Media Type.When regex-based content-type parsers are in use (a documented Fastify feature), the malformed value is matched against registered parsers using the full string including the trailing garbage. This means a request with an invalid content-type may be routed to and processed by a parser it should never have reached.
Impact
An attacker can send requests with RFC-invalid
Content-Typeheaders that bypass validity checks, reach content-type parser matching, and be processed by the server. Requests that should be rejected at the validation stage are instead handled as if the content-type were valid.Workarounds
Deploy a WAF rule to protect against this
Fix
The fix is available starting with v5.8.1.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
fastify: request.protocol and request.host Spoofable via X-Forwarded-Proto/Host from Untrusted Connections
CVE-2026-3635 / GHSA-444r-cwp2-x5xf
More information
Details
Summary
When
trustProxyis configured with a restrictive trust function (e.g., a specific IP liketrustProxy: '10.0.0.1', a subnet, a hop count, or a custom function), therequest.protocolandrequest.hostgetters readX-Forwarded-ProtoandX-Forwarded-Hostheaders from any connection — including connections from untrusted IPs. This allows an attacker connecting directly to Fastify (bypassing the proxy) to spoof both the protocol and host seen by the application.Affected Versions
fastify <= 5.8.2
Impact
Applications using
request.protocolorrequest.hostfor security decisions (HTTPS enforcement, secure cookie flags, CSRF origin checks, URL construction, host-based routing) are affected whentrustProxyis configured with a restrictive trust function.When
trustProxy: true(trust everything), bothhostandprotocoltrust all forwarded headers — this is expected behavior. The vulnerability only manifests with restrictive trust configurations.Severity
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Fastify has a Body Schema Validation Bypass via Leading Space in Content-Type Header
CVE-2026-33806 / GHSA-247c-9743-5963
More information
Details
Summary
A validation bypass vulnerability exists in Fastify v5.x where request body validation schemas specified via
schema.body.contentcan be completely circumvented by prepending a single space character (\x20) to theContent-Typeheader. The body is still parsed correctly as JSON (or any other content type), but schema validation is entirely skipped.This is a regression introduced by commit
f3d2bcb(fix for CVE-2025-32442).Details
The vulnerability is a parser-validator differential between two independent code paths that process the raw
Content-Typeheader differently.Parser path (
lib/content-type.js, line ~67) appliestrimStart()before processing:Validator path (
lib/validation.js, line 272) splits on/[ ;]/before trimming:The
ContentTypeclass appliestrimStart()before processing, so the parser correctly identifiesapplication/jsonand parses the body. However,getEssenceMediaTypesplits on/[ ;]/before trimming, so the leading space becomes a split point, producing an empty string. The validator looks up a schema for content-type"", finds nothing, and skips validation entirely.Regression source: Commit
f3d2bcb(April 18, 2025) changed the split delimiter from';'to/[ ;]/to fix CVE-2025-32442. The old code (header.split(';', 1)[0].trim()) was not vulnerable to this vector because.trim()would correctly handle the leading space. The new regex-based split introduced the regression.PoC
Output:
Impact
Any Fastify application that relies on
schema.body.content(per-content-type body validation) to enforce data integrity or security constraints is affected. An attacker can bypass all body validation by adding a single space before the Content-Type value. The attack requires no authentication and has zero complexity — it is a single-character modification to an HTTP header.This vulnerability is distinct from all previously patched content-type bypasses:
Recommended fix — add
trimStart()before the split ingetEssenceMediaType:Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
fastify/fastify (fastify)
v5.8.5Compare Source
This fixes CVE CVE-2026-33806 GHSA-247c-9743-5963.
What's Changed
New Contributors
Full Changelog: fastify/fastify@v5.8.4...v5.8.5
v5.8.4Compare Source
Full Changelog: fastify/fastify@v5.8.3...v5.8.4
v5.8.3Compare Source
This fixes CVE CVE-2026-3635 GHSA-444r-cwp2-x5xf.
What's Changed
New Contributors
Full Changelog: fastify/fastify@v5.8.2...v5.8.3
v5.8.2Compare Source
What's Changed
New Contributors
Full Changelog: fastify/fastify@v5.8.1...v5.8.2
v5.8.1Compare Source
Fixes "Missing End Anchor in "subtypeNameReg" Allows Malformed Content-Types to Pass Validation": GHSA-573f-x89g-hqp9.
CVE-2026-3419
Full Changelog: fastify/fastify@v5.8.0...v5.8.1
v5.8.0Compare Source
What's Changed
tsconfig.eslint.jsonby @mrazauskas in #6524New Contributors
Full Changelog: fastify/fastify@v5.7.4...v5.8.0
v5.7.4Compare Source
Full Changelog: fastify/fastify@v5.7.3...v5.7.4
Configuration
📅 Schedule: (in timezone America/New_York)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.