@astrojs/node: Backslash-prefixed paths not recognized as internal by trailing-slash redirect
Published 20 Jul 2026 · Updated 12 Aug 2026
Affected package
- Affected
- >=8.1.0 <11.0.2
- Fixed in
- 11.0.2
npm install @astrojs/node@11.0.2Details
Impact
With trailingSlash: 'always' configured, the @astrojs/node standalone server's static file handler appends a trailing slash to request paths and issues a 301 redirect. Paths beginning with /\ (slash-backslash) were not recognized as internal paths, so the handler would echo the raw path back in the Location header. Because browsers treat \ as / per the WHATWG URL specification, the resulting redirect could resolve to an external host.
Preconditions:
trailingSlash: 'always'must be set (non-default; the default is'ignore')- The request path must not have a file extension in its final segment
- An attacker must deliver the crafted link to a user
Patches
Fixed by treating backslash-prefixed paths the same as //-prefixed paths in isInternalPath(), so they are no longer rewritten with a trailing slash.
Workarounds
Use the default trailingSlash: 'ignore' setting, which does not issue trailing-slash redirects in the static file handler.
References
Is GHSA-r557-wffq-wvrc 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 @astrojs/node, and gives you the command that fixes it.
References
- Linkgithub.com/withastro/astro/security/advisories/GHSA-r557-wffq-wvrc
- Advisorynvd.nist.gov/vuln/detail/CVE-2026-59730
- Linkgithub.com/withastro/astro/pull/17252
- Linkgithub.com/withastro/astro/commit/eb6f97e391ee587747e37609c255c7cd4b9cce3c
- Packagegithub.com/withastro/astro
- Linkgithub.com/withastro/astro/releases/tag/@astrojs/node@11.0.2
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.