Novu XSS sanitization bypass in email editor

Severity: low · CVSS 3.1 · Published 2026-04-14

Novu's email workflow editor has a cross-site scripting (XSS) vulnerability where dangerous HTML attributes like oncontentvisibilityautostatechange are not properly filtered from email templates. An attacker can craft a malicious email template containing JavaScript that executes when the template is previewed, potentially compromising dashboard access or stealing session data of users editing email templates.

Technologies: Novu API, Novu Worker. Vendors: Novu, npm.

Quick answers

Is This vulnerability exploited in the wild?
No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
How severe is This vulnerability?
Low severity, with a CVSS score of 3.1, published 14 April 2026.
Which products and versions are affected?
Novu API < 3.15.0; Novu Worker < 3.15.0; Novu Worker < 3.15.0; @novu/api (npm) SEMVER:introduced=0,fixed=3.15.0.
Is there a fix for This vulnerability?
Yes. @novu/api (npm): upgrade to 3.15.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is This vulnerability attacked?
It is attacked over the network, in a web application.
Am I affected?
Check whether you run Novu API, Novu Worker, Novu Worker or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @novu/api (npm): upgrade to 3.15.0 or later
    npm install @novu/api@3.15.0

Technical details

The vulnerability exists in the sanitizer service used by Novu's application layer. The sanitize-html library is configured with allowedAttributes: false, which paradoxically permits all attributes through initially. A DANGEROUS_ATTRIBUTES blocklist attempts to filter dangerous event handlers post-sanitization, but the list is incomplete and misses attributes like oncontentvisibilityautostatechange. An attacker with dashboard access can inject a crafted HTML anchor tag with this payload into an email step body, which executes arbitrary JavaScript in the context of the dashboard when the email preview renders. While this appears as stored XSS, the attack can be amplified if an attacker uses OAuth flows to trick victims into logging into a compromised account with pre-placed payloads. The vulnerability is patched in version 3.15.0 and later.

Affected products

  • Novu Novu API < 3.15.0
  • Novu Novu Worker < 3.15.0

Timeline

  • 2026-04-13: disclosed: Advisory published by Novu security team
  • 2026-04-14: patched: Fixed in version 3.15.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.