<?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>Fri, 13 Nov 2026 18:08:52 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-114127</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-114127</link>
      <description>&lt;p&gt;Astro is a web framework for content-driven websites. From 7.1.0 until 7.3.3, Astro&amp;#39;s server-side View Transition CSS generator does not keep string animation properties within their generated declarations. An application that passes attacker-controlled data into properties such as duration, delay, easing, direction, fillMode, or animation names can allow CSS delimiters to terminate the declaration and add attacker-selected rules to the server-rendered page. The generated stylesheet still escapes literal less-than characters, so the injected content cannot terminate the style element or directly inject HTML or JavaScript. The injected CSS can conceal or reposition content, add generated text, and otherwise misrepresent the interface; some applications may also expose data already present in selectable DOM attributes through conditional resource loads. This issue is fixed in 7.3.3.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Astro is a web framework for content-driven websites. From 7.1.0 until 7.3.3, Astro&amp;#39;s server-side View Transition CSS generator does not keep string animation properties within their generated declarations. An application that passes attacker-controlled data into properties such as duration, delay, easing, direction, fillMode, or animation names can allow CSS delimiters to terminate the declaration and add attacker-selected rules to the server-rendered page. The generated stylesheet still escapes literal less-than characters, so the injected content cannot terminate the style element or directly inject HTML or JavaScript. The injected CSS can conceal or reposition content, add generated text, and otherwise misrepresent the interface; some applications may also expose data already present in selectable DOM attributes through conditional resource loads. This issue is fixed in 7.3.3.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-114127</guid>
    </item>
    <item>
      <title>GHSA-mpr7-6m5w-76rw — Astro: Arbitrary CSS injection in Astro View Transitions</title>
      <link>https://db.gcve.eu/vuln/ghsa-mpr7-6m5w-76rw</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 did not keep string animation properties within their generated CSS declarations. In an application that passes attacker-controlled data into an animation property such as `duration`, a value containing CSS delimiters could terminate the declaration and rule, then add attacker-selected CSS to the server-rendered page.&lt;/p&gt;
&lt;p&gt;The injected content remains inside the generated `&amp;lt;style&amp;gt;` element. It cannot terminate that element or inject HTML or JavaScript because Astro escapes `&amp;lt;` before emitting the stylesheet.&lt;/p&gt;
&lt;p&gt;### Severity&lt;/p&gt;
&lt;p&gt;Exploitation requires an application to pass untrusted, request-derived, or user-controlled content directly into a transition animation value. This is an uncommon application pattern, and applications using static or otherwise trusted transition values are unaffected.&lt;/p&gt;
&lt;p&gt;The resulting capability is limited to CSS in the rendered document. The proof of concept does not demonstrate JavaScript execution, HTML injection, an origin-boundary bypass, or access to server-only data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Animation values are collected by `stringifyAnimations()` in `packages/astro/src/runtime/server/transition.ts` and passed to `addAnimationProperty()`. String values were converted directly with `toString()`:&lt;/p&gt;
&lt;p&gt;```ts
function addAnimationProperty(builder: AnimationBuilder, prop: string, value: string | number) {
  let arr = builder[prop];
  if (Array.isArray(arr)) {
    arr.push(value.toString());
  } else {
    build…&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 did not keep string animation properties within their generated CSS declarations. In an application that passes attacker-controlled data into an animation property such as `duration`, a value containing CSS delimiters could terminate the declaration and rule, then add attacker-selected CSS to the server-rendered page.&lt;/p&gt;
&lt;p&gt;The injected content remains inside the generated `&amp;lt;style&amp;gt;` element. It cannot terminate that element or inject HTML or JavaScript because Astro escapes `&amp;lt;` before emitting the stylesheet.&lt;/p&gt;
&lt;p&gt;### Severity&lt;/p&gt;
&lt;p&gt;Exploitation requires an application to pass untrusted, request-derived, or user-controlled content directly into a transition animation value. This is an uncommon application pattern, and applications using static or otherwise trusted transition values are unaffected.&lt;/p&gt;
&lt;p&gt;The resulting capability is limited to CSS in the rendered document. The proof of concept does not demonstrate JavaScript execution, HTML injection, an origin-boundary bypass, or access to server-only data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Animation values are collected by `stringifyAnimations()` in `packages/astro/src/runtime/server/transition.ts` and passed to `addAnimationProperty()`. String values were converted directly with `toString()`:&lt;/p&gt;
&lt;p&gt;```ts
function addAnimationProperty(builder: AnimationBuilder, prop: string, value: string | number) {
  let arr = builder[prop];
  if (Array.isArray(arr)) {
    arr.push(value.toString());
  } else {
    build…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-mpr7-6m5w-76rw</guid>
    </item>
  </channel>
</rss>
