CVE-2026-75510 json
Novu: Stored XSS in In-App Inbox via notification redirect.url javascript: scheme
published 2026-09-22 48 d ago modified 2026-09-24 45 d ago also EUVD-2026-84535 , GHSA-8gr3-5j6f-25gp
- cvss
- 5.1
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
Novu provides an API for sending notifications through multiple channels. Prior to 3.18.0, Novu'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.
Patch / fix
- npm @novu/js 3.18.0
- novu novu 3.18.0
- github.com/novuhq/novu@f105f3d commit
- github.com/novuhq/novu#11453 pull request
- github.com/novuhq/novu/releases/tag/v3.18.0 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 48 d ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/novuhq/novu/security/advisories/GHSA-8gr3-5j6f-25gp referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.1 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N |
| CNA | 4.0 | 5.1 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @novu/js | <3.18.0 |
3.18.0 |
Affected products
- novuhq novu
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/novuhq/novu/pull/11453
web
-
github.com
/novuhq/novu/commit/f105f3d41a4405a75f803634d49f15a967524d8a
web
-
github.com
/novuhq/novu/security/advisories/GHSA-8gr3-5j6f-25gp
exploit, web
-
github.com
/novuhq/novu/releases/tag/v3.18.0
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-75510
advisory
-
github.com
/novuhq/novu
package
Sources
- CVE List CVE-2026-75510
- GitHub Advisory GHSA-8gr3-5j6f-25gp
- NVD CVE-2026-75510
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.