You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@fastify/static v9.1.0 and earlier decodes percent-encoded path separators (%2F) before filesystem resolution, but Fastify's router treats them as literal characters. This creates a routing mismatch: route guards on /admin/* do not match /admin%2Fsecret.html, but @fastify/static decodes it to /admin/secret.html and serves the file.
Applications that rely on route-based middleware or guards to protect files served by @fastify/static can be bypassed with encoded path separators.
@fastify/static v9.1.0 and earlier serves directory listings outside the configured static root when the list option is enabled. A request such as /public/../outside/ causes dirList.path() to resolve a directory outside the root via path.join() without a containment check.
A remote unauthenticated attacker can obtain directory listings for arbitrary directories accessible to the Node.js process, disclosing directory names and filenames that should not be exposed. File contents are not disclosed.
Patches
Upgrade to @fastify/static >= 9.1.1.
Workarounds
Disable directory listing by removing the list option from the plugin configuration.
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
Apr 24, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
Update dependency @fastify/static to v9.1.1 [SECURITY] - autoclosed
Apr 27, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Apr 29, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
Apr 29, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Apr 29, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
Apr 30, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 1, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 1, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 1, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 2, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 4, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 4, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 5, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 5, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 6, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 6, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 6, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 6, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 7, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 7, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 7, 2026
renovateBot
changed the title
chore(deps): update dependency @fastify/static to v9.1.1 [security]
Update dependency @fastify/static to v9.1.1 [SECURITY]
May 7, 2026
renovateBot
changed the title
Update dependency @fastify/static to v9.1.1 [SECURITY]
chore(deps): update dependency @fastify/static to v9.1.1 [security]
May 8, 2026
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
dependenciesPull requests that update a dependency file
0 participants
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:
9.0.0→9.1.1@fastify/static vulnerable to route guard bypass via encoded path separators
CVE-2026-6414 / GHSA-x428-ghpx-8j92
More information
Details
Impact
@fastify/staticv9.1.0 and earlier decodes percent-encoded path separators (%2F) before filesystem resolution, but Fastify's router treats them as literal characters. This creates a routing mismatch: route guards on/admin/*do not match/admin%2Fsecret.html, but @fastify/static decodes it to/admin/secret.htmland serves the file.Applications that rely on route-based middleware or guards to protect files served by @fastify/static can be bypassed with encoded path separators.
Patches
Upgrade to
@fastify/static>= 9.1.1.Workarounds
None. Upgrade to the patched version.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
@fastify/static vulnerable to path traversal in directory listing
CVE-2026-6410 / GHSA-pr96-94w5-mx2h
More information
Details
Impact
@fastify/staticv9.1.0 and earlier serves directory listings outside the configured static root when thelistoption is enabled. A request such as/public/../outside/causesdirList.path()to resolve a directory outside the root viapath.join()without a containment check.A remote unauthenticated attacker can obtain directory listings for arbitrary directories accessible to the Node.js process, disclosing directory names and filenames that should not be exposed. File contents are not disclosed.
Patches
Upgrade to
@fastify/static>= 9.1.1.Workarounds
Disable directory listing by removing the
listoption from the plugin configuration.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
fastify/fastify-static (@fastify/static)
v9.1.1Compare Source
This fixes CVE CVE-2026-6410 GHSA-pr96-94w5-mx2h.
This fixes CVE CVE-2026-6414 GHSA-x428-ghpx-8j92.
What's Changed
Full Changelog: fastify/fastify-static@v9.1.0...v9.1.1
v9.1.0Compare Source
What's Changed
New Contributors
Full Changelog: fastify/fastify-static@v9.0.0...v9.1.0
Configuration
📅 Schedule: (UTC)
🚦 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.