<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 08:55:45 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-73422</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-73422</link>
      <description>&lt;p&gt;Astro is a web framework for content-driven websites. From 2.9.0 until 7.1.0, Astro&amp;#39;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&amp;#39;s origin, allowing access to sensitive page data and authenticated actions available to the victim. This issue is fixed in version 7.1.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Astro is a web framework for content-driven websites. From 2.9.0 until 7.1.0, Astro&amp;#39;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&amp;#39;s origin, allowing access to sensitive page data and authenticated actions available to the victim. This issue is fixed in version 7.1.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-73422</guid>
    </item>
    <item>
      <title>GHSA-4g3v-8h47-v7g6 — Astro: Reflected XSS via unescaped View Transition animation properties</title>
      <link>https://db.gcve.eu/vuln/ghsa-4g3v-8h47-v7g6</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: astro&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Astro&amp;#39;s server-side View Transition CSS generator interpolates animation properties into an inline `&amp;lt;style&amp;gt;` element without escaping them for the CSS and HTML contexts.&lt;/p&gt;
&lt;p&gt;An attacker-controlled value passed to an animation property such as `duration` can contain a `&amp;lt;/style&amp;gt;` sequence, terminate the generated style element, and inject arbitrary HTML or JavaScript.&lt;/p&gt;
&lt;p&gt;This is similar to GHSA-8hv8-536x-4wqp, but exploits a different injection point: unescaped View Transition animation values in a server-generated `&amp;lt;style&amp;gt;` element rather than an unescaped slot name in a hydration template.&lt;/p&gt;
&lt;p&gt;Like GHSA-8hv8-536x-4wqp, exploitation requires an application to pass attacker-controlled data to an Astro API. However, the value is subsequently inserted into the HTML response without context-appropriate escaping by Astro.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;`packages/astro/src/runtime/server/transition.ts`&lt;/p&gt;
&lt;p&gt;The generated stylesheet is wrapped in a `&amp;lt;style&amp;gt;` element and marked as HTML-safe:&lt;/p&gt;
&lt;p&gt;```ts
const css = sheet.toString();
result._metadata.extraHead.push(markHTMLString(`&amp;lt;style&amp;gt;${css}&amp;lt;/style&amp;gt;`));
```&lt;/p&gt;
&lt;p&gt;Animation properties are added to the stylesheet without escaping:&lt;/p&gt;
&lt;p&gt;```ts
if (anim.duration) {
  addAnimationProperty(builder, &amp;#39;animation-duration&amp;#39;, toTimeValue(anim.duration));
}
```&lt;/p&gt;
&lt;p&gt;For string values, `toTimeValue()` returns the input unchanged:&lt;/p&gt;
&lt;p&gt;```ts
export function toTimeValue(num: number | string) {
  return typeof num === &amp;#39;number&amp;#39; ? num + &amp;#39;ms&amp;#39; : num;
}
```&lt;/p&gt;
&lt;p&gt;As a result, a `duration` value c…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: astro&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Astro&amp;#39;s server-side View Transition CSS generator interpolates animation properties into an inline `&amp;lt;style&amp;gt;` element without escaping them for the CSS and HTML contexts.&lt;/p&gt;
&lt;p&gt;An attacker-controlled value passed to an animation property such as `duration` can contain a `&amp;lt;/style&amp;gt;` sequence, terminate the generated style element, and inject arbitrary HTML or JavaScript.&lt;/p&gt;
&lt;p&gt;This is similar to GHSA-8hv8-536x-4wqp, but exploits a different injection point: unescaped View Transition animation values in a server-generated `&amp;lt;style&amp;gt;` element rather than an unescaped slot name in a hydration template.&lt;/p&gt;
&lt;p&gt;Like GHSA-8hv8-536x-4wqp, exploitation requires an application to pass attacker-controlled data to an Astro API. However, the value is subsequently inserted into the HTML response without context-appropriate escaping by Astro.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;`packages/astro/src/runtime/server/transition.ts`&lt;/p&gt;
&lt;p&gt;The generated stylesheet is wrapped in a `&amp;lt;style&amp;gt;` element and marked as HTML-safe:&lt;/p&gt;
&lt;p&gt;```ts
const css = sheet.toString();
result._metadata.extraHead.push(markHTMLString(`&amp;lt;style&amp;gt;${css}&amp;lt;/style&amp;gt;`));
```&lt;/p&gt;
&lt;p&gt;Animation properties are added to the stylesheet without escaping:&lt;/p&gt;
&lt;p&gt;```ts
if (anim.duration) {
  addAnimationProperty(builder, &amp;#39;animation-duration&amp;#39;, toTimeValue(anim.duration));
}
```&lt;/p&gt;
&lt;p&gt;For string values, `toTimeValue()` returns the input unchanged:&lt;/p&gt;
&lt;p&gt;```ts
export function toTimeValue(num: number | string) {
  return typeof num === &amp;#39;number&amp;#39; ? num + &amp;#39;ms&amp;#39; : num;
}
```&lt;/p&gt;
&lt;p&gt;As a result, a `duration` value c…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-4g3v-8h47-v7g6</guid>
    </item>
  </channel>
</rss>
