CVE-2026-73422: Astro reflected XSS via unescaped View Transition animation properties

CVE-2026-73422 · Severity: medium · CVSS 4 · Published 2026-08-12

Astro is a web framework that supports animated page transitions. The framework generates inline CSS for these transitions without properly escaping animation property values. An attacker who can inject values into animation properties (such as duration via URL query parameters) can break out of the CSS style element and inject malicious JavaScript that executes in users' browsers. This affects applications that pass user-supplied data directly to Astro's transition animation APIs.

Technologies: astro (npm). Vendors: npm.

Quick answers

Is CVE-2026-73422 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-73422 being exploited in the wild.
How severe is CVE-2026-73422?
Medium severity, with a CVSS score of 4, published 12 August 2026.
Which products and versions are affected?
astro (npm) SEMVER:introduced=2.9.0,fixed=7.1.0.
Is there a fix for CVE-2026-73422?
Yes. astro (npm): upgrade to 7.1.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-73422 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-73422?
Check whether you run astro (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • astro (npm): upgrade to 7.1.0 or later
    npm install astro@7.1.0

Technical details

This is a reflected XSS vulnerability in Astro's View Transition CSS generation logic (packages/astro/src/runtime/server/transition.ts). The vulnerability occurs because animation property values are added to a stylesheet without context-appropriate escaping and then wrapped in an HTML style element marked as safe. The toTimeValue() function returns string inputs unchanged, allowing a value like `</style><script>alert(1)</script><!--` to terminate the style element and inject arbitrary HTML or JavaScript. The vulnerability affects server-rendered routes (output: "server") and on-demand rendered pages. Successful exploitation allows arbitrary JavaScript execution with the privileges of the authenticated user. The vulnerability was patched in version 7.1.0 by adding CSS escaping for animation properties before embedding them in the generated stylesheet.

Affected products

  • Astro Astro >=2.9.0, <=7.0.9

Identifiers

  • CVE-2026-73422
  • GHSA-4g3v-8h47-v7g6

Timeline

  • 2026-07-20: disclosed: GHSA-4g3v-8h47-v7g6 published
  • 2026-07-15: patched: Fix merged in PR #17393
  • 2026-07-16: other: Patch released in version 7.1.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.