Summary
CVE-2026-102984 is a denial-of-service vulnerability in the @astrojs/node adapter for the Astro web framework, caused by an uncaught exception when processing a malformed Host header. The flaw affects versions up to and including 11.1.2 and carries a CVSS score of 8.2 (High). Under certain configurations, exploitation can crash the entire Node.js process, taking the affected site offline.
Technical details
- Root cause: The
@astrojs/nodeadapter builds a request URL directly from the incomingHostheader. A malformed port value (e.g., a port number that is out of range, or a header containing multiple colon-delimited port segments) produces an invalid URL. - Trigger condition: The adapter’s fallback/recovery logic reuses the same malformed host value and also fails, resulting in an uncaught
TypeError: Invalid URLbefore the request reaches routing. - Attack vector: Network — an unauthenticated attacker can send a single HTTP request with a crafted
Hostheader directly to the origin server; no authentication or user interaction is required. - Impact: In the default standalone configuration, the malformed request results in an HTTP 500 response and the server continues to run. However, when the adapter is configured with
staticHeaders: true, the exception is not caught by the synchronous handler and the Node.js process terminates, causing a full denial of service until the process is restarted. - Mitigating factor: Reverse proxies or CDNs that reject malformed
Hostheaders before forwarding traffic to the origin prevent this request from reaching the vulnerable code path. - This issue affects availability only; it does not permit code execution, data exposure, or data modification.
Affected software
@astrojs/nodeadapter versions up to and including 11.1.2- Fixed in
@astrojs/nodeversion 11.1.3
Severity
- CVSS Score: 8.2 (High)
- Attack Vector: Network
Mitigation and recommended actions
- Immediate: Upgrade
@astrojs/nodeto version 11.1.3 or later, which fixes the URL-parsing failure. - If patching is not immediately possible: Deploy the affected application behind a reverse proxy, load balancer, or CDN configured to reject requests containing malformed or non-standard
Hostheaders before they reach the origin server. Review whetherstaticHeaders: trueis enabled, as this configuration is the one confirmed to result in full process termination rather than a recoverable 500 error.

