<?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://cve.radiocsirt.org</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>Thu, 08 Oct 2026 10:51:22 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-292932</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-292932</link>
      <description>EUVD-2026-292932</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-292932</guid>
    </item>
    <item>
      <title>fkie_cve-2026-41067</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-41067</link>
      <description>&lt;p&gt;Astro is a web framework. Prior to 6.1.6, the defineScriptVars function in Astro&amp;#39;s server-side rendering pipeline uses a case-sensitive regex /&amp;lt;\/script&amp;gt;/g to sanitize values injected into inline &amp;lt;script&amp;gt; tags via the define:vars directive. HTML parsers close &amp;lt;script&amp;gt; elements case-insensitively and also accept whitespace or / before the closing &amp;gt;, allowing an attacker to bypass the sanitization with payloads like &amp;lt;/Script&amp;gt;, &amp;lt;/script &amp;gt;, or &amp;lt;/script/&amp;gt; and inject arbitrary HTML/JavaScript. This vulnerability is fixed in 6.1.6.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Astro is a web framework. Prior to 6.1.6, the defineScriptVars function in Astro&amp;#39;s server-side rendering pipeline uses a case-sensitive regex /&amp;lt;\/script&amp;gt;/g to sanitize values injected into inline &amp;lt;script&amp;gt; tags via the define:vars directive. HTML parsers close &amp;lt;script&amp;gt; elements case-insensitively and also accept whitespace or / before the closing &amp;gt;, allowing an attacker to bypass the sanitization with payloads like &amp;lt;/Script&amp;gt;, &amp;lt;/script &amp;gt;, or &amp;lt;/script/&amp;gt; and inject arbitrary HTML/JavaScript. This vulnerability is fixed in 6.1.6.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-41067</guid>
    </item>
    <item>
      <title>GHSA-j687-52p2-xcff — Astro: XSS in define:vars via incomplete &lt;/script&gt; tag sanitization</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-j687-52p2-xcff</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;The `defineScriptVars` function in Astro&amp;#39;s server-side rendering pipeline uses a case-sensitive regex `/&amp;lt;\/script&amp;gt;/g` to sanitize values injected into inline `&amp;lt;script&amp;gt;` tags via the `define:vars` directive. HTML parsers close `&amp;lt;script&amp;gt;` elements case-insensitively and also accept whitespace or `/` before the closing `&amp;gt;`, allowing an attacker to bypass the sanitization with payloads like `&amp;lt;/Script&amp;gt;`, `&amp;lt;/script &amp;gt;`, or `&amp;lt;/script/&amp;gt;` and inject arbitrary HTML/JavaScript.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerable function is `defineScriptVars` at `packages/astro/src/runtime/server/render/util.ts:42-53`:&lt;/p&gt;
&lt;p&gt;```typescript
export function defineScriptVars(vars: Record&amp;lt;any, any&amp;gt;) {
	let output = &amp;#39;&amp;#39;;
	for (const [key, value] of Object.entries(vars)) {
		output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(
			/&amp;lt;\/script&amp;gt;/g,       // ← Case-sensitive, exact match only
			&amp;#39;\\x3C/script&amp;gt;&amp;#39;,
		)};\n`;
	}
	return markHTMLString(output);
}
```&lt;/p&gt;
&lt;p&gt;This function is called from `renderElement` at `util.ts:172-174` when a `&amp;lt;script&amp;gt;` element has `define:vars`:&lt;/p&gt;
&lt;p&gt;```typescript
if (name === &amp;#39;script&amp;#39;) {
	delete props.hoist;
	children = defineScriptVars(defineVars) + &amp;#39;\n&amp;#39; + children;
}
```&lt;/p&gt;
&lt;p&gt;The regex `/&amp;lt;\/script&amp;gt;/g` fails to match three classes of closing script tags that HTML parsers accept per the [HTML specification §13.2.6.4](https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inbody):&lt;/p&gt;
&lt;p&gt;1. **Case variations**: `&amp;lt;/Script&amp;gt;`, `&amp;lt;/SCRIPT&amp;gt;`, `&amp;lt;/sCrIpT&amp;gt;` — HTML tag names are case-ins…&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;The `defineScriptVars` function in Astro&amp;#39;s server-side rendering pipeline uses a case-sensitive regex `/&amp;lt;\/script&amp;gt;/g` to sanitize values injected into inline `&amp;lt;script&amp;gt;` tags via the `define:vars` directive. HTML parsers close `&amp;lt;script&amp;gt;` elements case-insensitively and also accept whitespace or `/` before the closing `&amp;gt;`, allowing an attacker to bypass the sanitization with payloads like `&amp;lt;/Script&amp;gt;`, `&amp;lt;/script &amp;gt;`, or `&amp;lt;/script/&amp;gt;` and inject arbitrary HTML/JavaScript.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerable function is `defineScriptVars` at `packages/astro/src/runtime/server/render/util.ts:42-53`:&lt;/p&gt;
&lt;p&gt;```typescript
export function defineScriptVars(vars: Record&amp;lt;any, any&amp;gt;) {
	let output = &amp;#39;&amp;#39;;
	for (const [key, value] of Object.entries(vars)) {
		output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(
			/&amp;lt;\/script&amp;gt;/g,       // ← Case-sensitive, exact match only
			&amp;#39;\\x3C/script&amp;gt;&amp;#39;,
		)};\n`;
	}
	return markHTMLString(output);
}
```&lt;/p&gt;
&lt;p&gt;This function is called from `renderElement` at `util.ts:172-174` when a `&amp;lt;script&amp;gt;` element has `define:vars`:&lt;/p&gt;
&lt;p&gt;```typescript
if (name === &amp;#39;script&amp;#39;) {
	delete props.hoist;
	children = defineScriptVars(defineVars) + &amp;#39;\n&amp;#39; + children;
}
```&lt;/p&gt;
&lt;p&gt;The regex `/&amp;lt;\/script&amp;gt;/g` fails to match three classes of closing script tags that HTML parsers accept per the [HTML specification §13.2.6.4](https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inbody):&lt;/p&gt;
&lt;p&gt;1. **Case variations**: `&amp;lt;/Script&amp;gt;`, `&amp;lt;/SCRIPT&amp;gt;`, `&amp;lt;/sCrIpT&amp;gt;` — HTML tag names are case-ins…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-j687-52p2-xcff</guid>
    </item>
  </channel>
</rss>
