Description
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.
Published: 2026-08-12
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Astro, a popular web framework, interpolates animation properties supplied to View Transition CSS directly into an inline style element without proper escaping for CSS and HTML contexts. An attacker who controls a View Transition animation value, such as duration, can break out of the intended CSS and inject arbitrary HTML or JavaScript. When such a route is rendered server‑side or on‑demand, the injected script runs with the permissions of the affected application, enabling the theft of sensitive data, authentication credentials, and the execution of malicious authenticated actions in the victim’s context. The weakness is a Common Weakness Enumeration CWE‑79, a reflected XSS flaw.

Affected Systems

The vulnerability affects the Astro web framework from version 2.9.0 through 7.0.x. The issue was fixed in Astro release 7.1.0. The framework is used by developers building content‑driven websites and includes a server‑side View Transition CSS generator that is susceptible when animation values are supplied without sanitization.

Risk and Exploitability

The CVSS score of 5.3 indicates a medium severity vulnerability. EPSS is not available, and the vulnerability is not listed in CISA KEV. Exploitation requires control over a route that passes attacker‑crafted animation values to the server, which is feasible for attackers who can influence user input or route parameters. Once the server renders the unescaped animation string, the client can execute arbitrary JavaScript on the application’s origin. The attack vector is thus an on‑demand or server‑rendered route providing attacker input, and the risk level is considered moderate with potential for significant impact if the application serves sensitive data.

Generated by OpenCVE AI on August 12, 2026 at 22:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Astro to version 7.1.0 or later to receive the fix that properly escapes animation properties
  • If an immediate upgrade is not possible, disable or remove the server‑side View Transition feature or ensure that any animation values passed to it are strictly validated and sanitized before rendering
  • Implement a Content‑Security‑Policy that blocks inline scripts and restricts the sources of scripts to mitigate the effect of any potential XSS injection

Generated by OpenCVE AI on August 12, 2026 at 22:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4g3v-8h47-v7g6 Astro: Reflected XSS via unescaped View Transition animation properties
History

Fri, 14 Aug 2026 23:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 12 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Withastro
Withastro astro
Vendors & Products Withastro
Withastro astro

Wed, 12 Aug 2026 20:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Astro: Reflected XSS via unescaped View Transition animation properties
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 5.3, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-14T22:12:40.307Z

Reserved: 2026-08-12T14:32:11.795Z

Link: CVE-2026-73422

cve-icon Vulnrichment

Updated: 2026-08-14T22:12:13.971Z

cve-icon NVD

Status : Received

Published: 2026-08-12T21:17:41.187

Modified: 2026-08-14T23:16:32.900

Link: CVE-2026-73422

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-12T22:15:06Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')