<?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>Wed, 11 Nov 2026 07:15:41 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-110802</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-110802</link>
      <description>&lt;p&gt;Altair is a GraphQL client for all platforms. From 7.2.4 until 8.5.8, packages/altair-iframe-sandbox/src/main.ts reads plugin_sandbox_opts from the iframe-sandbox query string and passes attacker-controlled scriptUrls to injectScript() in packages/altair-core/src/utils/inject.ts, which creates script elements in the page. The intended parent iframe flow places the page in an iframe with sandbox allow-scripts and without allow-same-origin, but direct navigation to a crafted iframe-sandbox URL omits that isolation and executes the supplied script in the origin serving Altair. Exploitation requires a victim to open the crafted URL, and the resulting script can access script-readable storage and make same-origin requests according to the deployment&amp;#39;s authentication and cookie controls. This issue is fixed in version 8.5.8.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Altair is a GraphQL client for all platforms. From 7.2.4 until 8.5.8, packages/altair-iframe-sandbox/src/main.ts reads plugin_sandbox_opts from the iframe-sandbox query string and passes attacker-controlled scriptUrls to injectScript() in packages/altair-core/src/utils/inject.ts, which creates script elements in the page. The intended parent iframe flow places the page in an iframe with sandbox allow-scripts and without allow-same-origin, but direct navigation to a crafted iframe-sandbox URL omits that isolation and executes the supplied script in the origin serving Altair. Exploitation requires a victim to open the crafted URL, and the resulting script can access script-readable storage and make same-origin requests according to the deployment&amp;#39;s authentication and cookie controls. This issue is fixed in version 8.5.8.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-110802</guid>
    </item>
    <item>
      <title>GHSA-752m-7p75-49gf — Altair: DOM-based XSS via attacker-controlled script URLs in the iframe sandbox</title>
      <link>https://db.gcve.eu/vuln/ghsa-752m-7p75-49gf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: altair-static, npm: altair-express-middleware, npm: altair-koa-middleware, npm: altair-fastify-plugin&lt;/p&gt;
&lt;p&gt;### Summary
Altair `8.5.7` accepts plugin configuration directly from the `iframe-sandbox` query string.&lt;/p&gt;
&lt;p&gt;When `plugin_sandbox_opts` contains `type: &amp;#34;scripts&amp;#34;` and an attacker-controlled URL in `scriptUrls`, the sandbox page creates a classic `&amp;lt;script src=&amp;#34;...&amp;#34;&amp;gt;` element and loads the supplied script.&lt;/p&gt;
&lt;p&gt;In the intended plugin flow, this page runs inside an `&amp;lt;iframe sandbox=&amp;#34;allow-scripts&amp;#34;&amp;gt;` without `allow-same-origin`, giving plugin code an opaque origin. However, if a victim opens the crafted sandbox URL directly, that iframe isolation is absent and the attacker-controlled script executes in the origin serving Altair, resulting in DOM-based cross-site scripting (XSS) / arbitrary JavaScript execution in the Altair hosting origin.&lt;/p&gt;
&lt;p&gt;Exploitation requires the victim to open a crafted URL.&lt;/p&gt;
&lt;p&gt;### Details
The sandbox reads its configuration directly from `window.location.search`.&lt;/p&gt;
&lt;p&gt;In `packages/altair-iframe-sandbox/src/main.ts`:&lt;/p&gt;
&lt;p&gt;```
const searchParams = new URLSearchParams(window.location.search);
const sandboxType = searchParams.get(&amp;#39;sandbox_type&amp;#39;);&lt;/p&gt;
&lt;p&gt;switch (sandboxType) {
  case &amp;#39;plugin&amp;#39;:
    handlePluginSandbox();
    break;
}
```&lt;/p&gt;
&lt;p&gt;`handlePluginSandbox()` then parses `plugin_sandbox_opts`:&lt;/p&gt;
&lt;p&gt;```
const searchParams = new URLSearchParams(window.location.search);
const pluginSandboxOptsStr = searchParams.get(&amp;#39;plugin_sandbox_opts&amp;#39;);&lt;/p&gt;
&lt;p&gt;const pluginSandboxOpts = pluginSandboxOptsStr
  ? (JSON.parse(pluginSandboxOptsStr) as PluginParentWorkerOptions)
  : undefined;
```&lt;/p&gt;
&lt;p&gt;The relevant vali…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: altair-static, npm: altair-express-middleware, npm: altair-koa-middleware, npm: altair-fastify-plugin&lt;/p&gt;
&lt;p&gt;### Summary
Altair `8.5.7` accepts plugin configuration directly from the `iframe-sandbox` query string.&lt;/p&gt;
&lt;p&gt;When `plugin_sandbox_opts` contains `type: &amp;#34;scripts&amp;#34;` and an attacker-controlled URL in `scriptUrls`, the sandbox page creates a classic `&amp;lt;script src=&amp;#34;...&amp;#34;&amp;gt;` element and loads the supplied script.&lt;/p&gt;
&lt;p&gt;In the intended plugin flow, this page runs inside an `&amp;lt;iframe sandbox=&amp;#34;allow-scripts&amp;#34;&amp;gt;` without `allow-same-origin`, giving plugin code an opaque origin. However, if a victim opens the crafted sandbox URL directly, that iframe isolation is absent and the attacker-controlled script executes in the origin serving Altair, resulting in DOM-based cross-site scripting (XSS) / arbitrary JavaScript execution in the Altair hosting origin.&lt;/p&gt;
&lt;p&gt;Exploitation requires the victim to open a crafted URL.&lt;/p&gt;
&lt;p&gt;### Details
The sandbox reads its configuration directly from `window.location.search`.&lt;/p&gt;
&lt;p&gt;In `packages/altair-iframe-sandbox/src/main.ts`:&lt;/p&gt;
&lt;p&gt;```
const searchParams = new URLSearchParams(window.location.search);
const sandboxType = searchParams.get(&amp;#39;sandbox_type&amp;#39;);&lt;/p&gt;
&lt;p&gt;switch (sandboxType) {
  case &amp;#39;plugin&amp;#39;:
    handlePluginSandbox();
    break;
}
```&lt;/p&gt;
&lt;p&gt;`handlePluginSandbox()` then parses `plugin_sandbox_opts`:&lt;/p&gt;
&lt;p&gt;```
const searchParams = new URLSearchParams(window.location.search);
const pluginSandboxOptsStr = searchParams.get(&amp;#39;plugin_sandbox_opts&amp;#39;);&lt;/p&gt;
&lt;p&gt;const pluginSandboxOpts = pluginSandboxOptsStr
  ? (JSON.parse(pluginSandboxOptsStr) as PluginParentWorkerOptions)
  : undefined;
```&lt;/p&gt;
&lt;p&gt;The relevant vali…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-752m-7p75-49gf</guid>
    </item>
  </channel>
</rss>
