Description
@fastify/static versions 8.0.0 through 9.1.0 allow path traversal when directory listing is enabled via the list option. The dirList.path() function resolves directories outside the configured static root using 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 and file names. File contents are not disclosed. Upgrade to @fastify/static 9.1.1 to fix this issue. As a workaround, disable directory listing by removing the list option from the plugin configuration.
Problem types
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Product status
8.0.0 (semver) before 9.1.1
9.1.1 (semver)
Credits
yuki-matsuhashi
mcollina
UlisesGascon
climba03003
References
github.com/...static/security/advisories/GHSA-pr96-94w5-mx2h
cna.openjsf.org/security-advisories.html