<?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 17:40:32 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-75510</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-75510</link>
      <description>&lt;p&gt;Novu provides an API for sending notifications through multiple channels. Prior to 3.18.0, Novu&amp;#39;s @novu/js In-App Inbox and the @novu/react Inbox component accept a notification call-to-action redirect.url from the v1 cta.data object and pass it through apps/api/src/app/inbox/utils/notification-mapper.ts and packages/js/src/ui/components/Notification/DefaultNotification.tsx to the navigate function in packages/js/src/ui/context/InboxContext.tsx without validating its URL scheme. An authenticated organization member or environment API-key holder can store a javascript: redirect with target _self in an in-app workflow. When a recipient using a Chromium-based browser clicks the notification, window.open executes the redirect in the current inbox-hosting origin, which can expose session material and permit authenticated actions in a customer application or the self-hosted Novu dashboard. This issue is fixed in version 3.18.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Novu provides an API for sending notifications through multiple channels. Prior to 3.18.0, Novu&amp;#39;s @novu/js In-App Inbox and the @novu/react Inbox component accept a notification call-to-action redirect.url from the v1 cta.data object and pass it through apps/api/src/app/inbox/utils/notification-mapper.ts and packages/js/src/ui/components/Notification/DefaultNotification.tsx to the navigate function in packages/js/src/ui/context/InboxContext.tsx without validating its URL scheme. An authenticated organization member or environment API-key holder can store a javascript: redirect with target _self in an in-app workflow. When a recipient using a Chromium-based browser clicks the notification, window.open executes the redirect in the current inbox-hosting origin, which can expose session material and permit authenticated actions in a customer application or the self-hosted Novu dashboard. This issue is fixed in version 3.18.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-75510</guid>
    </item>
    <item>
      <title>GHSA-8gr3-5j6f-25gp — Novu: Stored XSS in In-App Inbox via notification redirect.url javascript: scheme</title>
      <link>https://db.gcve.eu/vuln/ghsa-8gr3-5j6f-25gp</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @novu/js&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `@novu/js` In-App Inbox renderer passes a notification&amp;#39;s `redirect.url` to `window.open()` with no URL-scheme validation. The value originates from a notification&amp;#39;s call-to-action and is delivered to the recipient verbatim.&lt;/p&gt;
&lt;p&gt;An authenticated organization member (or any holder of the environment API key) creates a v1 in-app workflow whose step CTA stores `cta.data = { url: &amp;#34;javascript:&amp;lt;payload&amp;gt;&amp;#34;, target: &amp;#34;_self&amp;#34; }`. The v1 message-template `cta.data` field is a Mongoose `Mixed` type, so the arbitrary `target` key is accepted and persisted. The server-side inbox mapper copies `cta.data.url` and `cta.data.target` into the notification&amp;#39;s `redirect` object with no scheme check. Novu&amp;#39;s v2 control schema validates redirect URLs against `redirectUrlRegex` (which rejects `javascript:`), proving the intended invariant; the v1 path and the client renderer do not enforce it.&lt;/p&gt;
&lt;p&gt;When the recipient clicks the notification, the inbox calls `window.open(url, &amp;#34;_self&amp;#34;, &amp;#34;noopener noreferrer&amp;#34;)`. In Chromium browsers a `javascript:` URL opened with `target=&amp;#34;_self&amp;#34;` executes in the current document origin (the default `_blank` is browser-blocked, so the attacker sets `_self`).&lt;/p&gt;
&lt;p&gt;Result: a low-privilege content author runs arbitrary JavaScript in the browser of every recipient who clicks, in the origin that hosts the inbox (the customer application or the self-hosted Novu dashboard, neither of which sends a CSP).&lt;/p&gt;
&lt;p&gt;## Affected&lt;/p&gt;
&lt;p&gt;novuhq/novu self-hosted and cloud, API &amp;lt;= v3.15.0; `@novu/…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @novu/js&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `@novu/js` In-App Inbox renderer passes a notification&amp;#39;s `redirect.url` to `window.open()` with no URL-scheme validation. The value originates from a notification&amp;#39;s call-to-action and is delivered to the recipient verbatim.&lt;/p&gt;
&lt;p&gt;An authenticated organization member (or any holder of the environment API key) creates a v1 in-app workflow whose step CTA stores `cta.data = { url: &amp;#34;javascript:&amp;lt;payload&amp;gt;&amp;#34;, target: &amp;#34;_self&amp;#34; }`. The v1 message-template `cta.data` field is a Mongoose `Mixed` type, so the arbitrary `target` key is accepted and persisted. The server-side inbox mapper copies `cta.data.url` and `cta.data.target` into the notification&amp;#39;s `redirect` object with no scheme check. Novu&amp;#39;s v2 control schema validates redirect URLs against `redirectUrlRegex` (which rejects `javascript:`), proving the intended invariant; the v1 path and the client renderer do not enforce it.&lt;/p&gt;
&lt;p&gt;When the recipient clicks the notification, the inbox calls `window.open(url, &amp;#34;_self&amp;#34;, &amp;#34;noopener noreferrer&amp;#34;)`. In Chromium browsers a `javascript:` URL opened with `target=&amp;#34;_self&amp;#34;` executes in the current document origin (the default `_blank` is browser-blocked, so the attacker sets `_self`).&lt;/p&gt;
&lt;p&gt;Result: a low-privilege content author runs arbitrary JavaScript in the browser of every recipient who clicks, in the origin that hosts the inbox (the customer application or the self-hosted Novu dashboard, neither of which sends a CSP).&lt;/p&gt;
&lt;p&gt;## Affected&lt;/p&gt;
&lt;p&gt;novuhq/novu self-hosted and cloud, API &amp;lt;= v3.15.0; `@novu/…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-8gr3-5j6f-25gp</guid>
    </item>
  </channel>
</rss>
