CVE-2025-55207
JavaScript vulnerability analysis and mitigation

Overview

CVE-2025-55207 is an Open Redirect vulnerability (CWE-601) in the @astrojs/node Node.js deployment adapter for the Astro web framework. It is a bypass of a prior fix for CVE-2025-54793 (GHSA-cq8c-xv66-36gw), affecting @astrojs/node versions up to and including 9.4.0. The vulnerability specifically manifests when the Node adapter is used in standalone mode with trailingSlash set to "always" in the Astro configuration. It was published on August 15, 2025, and carries a CVSS v4.0 base score of 5.5 (Medium) (Github Advisory, Astro Advisory).

Technical details

The root cause is improper handling of URLs containing double-leading slashes (e.g., //external.com/path) in the serve-static.ts module of the Node adapter. When trailingSlash is set to "always", the adapter appends a trailing slash and issues a 301 redirect without first checking whether the URL path represents an internal or external (protocol-relative) path. The fix introduced a check using isInternalPath() to prevent redirects to paths that could be interpreted as external origins by browsers (Astro Commit). No authentication or special privileges are required to trigger the redirect — any unauthenticated user can exploit it by visiting a crafted URL (Github Advisory).

Impact

Successful exploitation allows an attacker to redirect victims from a trusted, legitimate-looking domain to an arbitrary external website. Because the initial URL appears to belong to the legitimate domain, users are more likely to trust the destination, making this vulnerability a vector for credential theft, malware distribution, and phishing attacks. The vulnerable system itself has no direct confidentiality, integrity, or availability impact, but downstream (subsequent) systems — such as attacker-controlled phishing pages — can achieve low confidentiality and integrity impact on victims (Github Advisory, Astro Advisory).

Exploitability

A proof-of-concept is publicly documented in the GitHub Security Advisory, including a StackBlitz reproduction environment, making exploitation straightforward for any attacker (Github Advisory). There is no evidence of active in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.042% (13th percentile), indicating a low near-term exploitation probability (Github Advisory). Exploitation requires no authentication and only needs a victim to click a crafted link.

Exploitation steps

  1. Identify a target: Locate a publicly accessible Astro site deployed using the @astrojs/node adapter in standalone mode with trailingSlash: 'always' configured and running @astrojs/node version 9.4.0 or earlier.
  2. Craft a malicious URL: Construct a URL targeting the victim site with a double-slash followed by the attacker's domain, e.g., https://legitimate-site.com//attacker.com/phishing-page. Browsers interpret //attacker.com/... as a protocol-relative URL pointing to an external origin.
  3. Trigger the redirect: When a user visits the crafted URL, the Astro Node adapter's trailing slash logic detects the path lacks a trailing slash and issues a 301 redirect to //attacker.com/phishing-page, which the browser resolves as https://attacker.com/phishing-page.
  4. Deliver the payload: The victim is transparently redirected to the attacker-controlled page. Because the original URL appeared to belong to a trusted domain, the victim may be more likely to interact with the phishing page, submit credentials, or download malware (Github Advisory, Astro Advisory).

Indicators of compromise

  • Network: HTTP requests to the Astro server containing double-slash sequences in the URL path (e.g., GET //external-domain.com/path HTTP/1.1); 301 redirect responses with a Location header pointing to an external or protocol-relative URL (e.g., Location: //attacker.com/page).
  • Logs: Web server or Node.js access logs showing requests with paths matching the pattern //[domain]/[path] followed by 301 responses; unusual referrer headers in downstream logs from the redirected destination.
  • Application: Presence of @astrojs/node version 9.4.0 or earlier in package.json or node_modules, combined with trailingSlash: 'always' and adapter: node({ mode: 'standalone' }) in astro.config.mjs.

Mitigation and workarounds

The primary remediation is to upgrade @astrojs/node to version 9.4.1 or later, which introduces a check using isInternalPath() to prevent protocol-relative redirect paths from being treated as internal routes (Astro Commit, Github Advisory). As a temporary workaround, operators can change the trailingSlash configuration from "always" to another value (e.g., "ignore" or "never"), or switch from standalone mode, to eliminate the vulnerable code path. Additionally, deploying a reverse proxy (e.g., nginx) in front of the Astro server that normalizes or rejects URLs containing double-slash sequences can provide defense-in-depth.

Community reactions

The vulnerability was reported by security researcher florian-lefebvre and remediated by the Astro core team (ematipico, Fryuni, delucis), with the advisory published directly on GitHub on August 15, 2025 (Astro Advisory). No significant broader media coverage or notable social media commentary beyond standard vulnerability database aggregation has been observed for this issue.

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-77415CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77414CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77413CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-63421HIGH7.5
  • JavaScript logoJavaScript
  • @keystone-6/core
NoYesAug 21, 2026
CVE-2026-53509MEDIUM5.7
  • JavaScript logoJavaScript
  • @aborruso/ckan-mcp-server
NoYesAug 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management