LowGHSA-r557-wffq-wvrcCVE-2026-59730

@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
Update to the fixed version for your release line, for example:npm install @astrojs/node@11.0.2

Details

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

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.