CVE-2026-59730
lowpriority · track · 0EPSS 0.005 · 40 %ileEUUSEPSS · scored 2026-10-27
Astro is a web framework for content-driven websites. In versions 8.1.0 through 11.0.1, when trailingSlash: 'always' is 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 for exploitation: trailingSlash: 'always' must be set (non-default; the default is 'ignore'), the request path must not have a file extension in its final segment, and an attacker must deliver the crafted link to a user. This issue has been fixed in version 11.0.2.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (2)
Products and version ranges known to be affected.
advisories (1)
Vendor and ecosystem advisories describing this.
- GHSA-r557-wffq-wvrc@astrojs/node: Backslash-prefixed paths not recognized as internal by trailing-slash redirect2026-07-20ghsa · osvUS
### 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 - [WHATWG URL spec: backslash normalization](https://url.spec.whatwg.org/#url-parsing)
also known as (3)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (12)
External citations — patches, advisories, analysis.
- https://github.com/withastro/astro/commit/eb6f97e391ee587747e37609c255c7cd4b9cce3ccnnvd
- https://github.com/withastro/astro/pull/17252cnnvd
- https://github.com/withastro/astro/releases/tag/@astrojs/node@11.0.2cnnvd
- https://github.com/withastro/astro/security/advisories/GHSA-r557-wffq-wvrccnnvd
- https://github.com/withastro/astro/commit/eb6f97e391ee587747e37609c255c7cd4b9cce3cenisa_euvd
- https://github.com/withastro/astro/pull/17252enisa_euvd
- https://github.com/withastro/astro/releases/tag/@astrojs/node@11.0.2enisa_euvd
- https://github.com/withastro/astro/security/advisories/GHSA-r557-wffq-wvrcenisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan