Skip to main content

Novu CVE-2026-75511

| EUVDEUVD-2026-84536 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-22 GitHub_M
5.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as Novu user
  2. Delivery
    Set chat webhook URL to internal target
  3. Exploit
    Trigger notification event
  4. Execution
    Worker POSTs to internal service
  5. Impact
    Internal service performs attacker-directed action

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Novu account (PR:L) with the ability to supply a chat webhook URL via subscriber credentials.webhookUrl, channel endpoint.url, event payload.webhookUrl, or event overrides.webhookUrl, and to trigger delivery through one of the affected chat providers (Slack, Discord, Mattermost, Microsoft Teams, Grafana On-Call, Ryver, Rocket.Chat, GetStream, or Zulip) - these paths omit normalizeOutboundHttpUrl, assertSafeOutboundUrl, and the DNS-pinned safeOutboundJsonRequest checks. Exploitation further requires that the Novu worker have network reachability to the intended internal target. Limiting factors: valid authentication is mandatory, the primitive is a POST-only, largely blind SSRF (impact bounded to interactions/actions on the internal service, not arbitrary read or code execution), and it is fixed in v3.18.0.

Impact

This is a genuine but moderate-severity SSRF (CWE-918). The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L = 5.3) indicates a network-reachable, low-complexity flaw requiring authentication (PR:L), with only LOW impact across confidentiality, integrity, and availability on both the vulnerable and subsequent systems - consistent with a largely blind, POST-only SSRF rather than a full read/RCE primitive. No EPSS score, no CISA KEV listing, and no public POC are present in the provided intelligence, so exploitation status is 'no public exploit identified at time of analysis.' The requirement for a valid authenticated Novu account plus the ability to configure a chat-provider webhook URL meaningfully limits the attacker population, and the impact is bounded to internal POST interactions rather than data exfiltration or code execution. Net assessment: a real, patch-worthy issue for organizations running self-hosted Novu with internal network exposure, but not an emergency - no evidence of widespread or automated exploitation. The signals are internally consistent (no CVSS-vs-description conflict); the main missing signals are EPSS/KEV/POC, whose absence is expected for a freshly-disclosed niche-OSS advisory.

Exploit ScenarioDerived

An authenticated Novu user configures a chat channel (e.g., Discord, Slack, Microsoft Teams, or Grafana On-Call provider) with a webhook URL pointing at an internal service such as a cloud metadata endpoint or an internal admin API, then triggers a notification event. The Novu worker issues an attacker-directed POST to that internal destination - bypassing the DNS-pinned safeOutboundJsonRequest protections used by the generic webhook providers - causing interactions or actions on services not meant to be reachable externally. No public exploit code was identified, but the attack is straightforward given the documented unprotected endpoint paths.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 22, 2026

Server-side request forgery in Novu prior to 3.18.0 allows an authenticated user to make the notification worker issue attacker-directed POST requests to internal or otherwise restricted network services by supplying a chat webhook URL through subscriber credentials.webhookUrl, channel endpoint.url, event payload.webhookUrl, or event overrides.webhookUrl. The Slack, Discord, Mattermost, Microsoft Teams, Grafana On-Call, Ryver, Rocket.Chat, GetStream, and Zulip chat providers pass that URL straight into raw HTTP requests in send-message-chat.usecase.ts without the normalizeOutboundHttpUrl, assertSafeOutboundUrl, or DNS-pinned safeOutboundJsonRequest guards that protect Novu's generic webhook providers, resulting in a largely blind, POST-only SSRF whose impact is bounded to interactions or actions offered by the reached internal service (CVSS 5.3; assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N). Exploitation requires a valid authenticated account and worker-level network reachability to the intended target; no public exploit code has been identified at time of analysis and there is no confirmation of active exploitation (CISA KEV). The issue is fixed in version 3.18.0.

RemediationAI

Upgrade to Novu 3.18.0 (vendor-released patch; https://github.com/novuhq/novu/releases/tag/v3.18.0), which routes all affected chat providers through resolveSafeChatWebhookUrl and safeChatWebhookJsonRequest so chat webhook destinations receive the same URL normalization, outbound-address assertion, and DNS-pinned request handling as generic webhooks - the corresponding source fix is PR novuhq/novu#11455 (commit dabfd66457c0b98ad46a8186e69f74f570a990c2), and the advisory is GHSA-pg9q-8v57-hqph. Where immediate upgrade is not possible, apply layered compensating controls: enforce egress network policy on the Novu worker so it can only reach approved external chat endpoints and is denied loopback, RFC1918, link-local (169.254.0.0/16), and cloud metadata addresses (trade-off: this may break legitimate self-hosted or on-premises chat webhooks, which must then be allow-listed explicitly); restrict who may create or modify subscriber credentials and chat channel endpoint URLs, and audit existing stored webhookUrl and endpoint.url values for internal addresses before enabling delivery (trade-off: adds administrative overhead and can surface stale configurations that then fail); and disable unused chat integrations such as Ryver, Rocket.Chat, GetStream, Grafana On-Call, and Zulip so their providers cannot be selected as an SSRF path (trade-off: loss of those notification channels). Because the primitive is POST-only and largely blind, restricting worker egress and limiting privileged configuration rights materially reduces impact even without the patch, but upgrading remains the definitive fix.

Affected VersionsENISA

api-service < 3.18.0
novu < 3.18.0

Affected Packages

euvd api_service fix: 3.18.0
euvd novu fix: 3.18.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Novu is an open-source notification infrastructure platform exposing an API that dispatches messages across email, SMS, push, and chat channels; the affected packages are tracked as cpe:2.3:a:novuhq:novu and cpe:2.3:a:@novu:api-service. The root cause is CWE-918 (Server-Side Request Forgery): the chat provider implementations resolved the destination from user-influenced fields (subscriber credentials.webhookUrl, channel endpoint.url, event payload.webhookUrl, event overrides.webhookUrl) and handed it to a plain axios instance created inside the provider, so the destination never passed through the shared outbound-URL hardening layer (normalizeOutboundHttpUrl, assertSafeOutboundUrl, and DNS-pinned safeOutboundJsonRequest) used by the generic webhook providers. Because the worker process typically sits inside a trusted network segment, a crafted URL can redirect the outbound POST to loopback, RFC1918, link-local, or cloud metadata-style addresses, and the request body/headers are shaped by the provider's transform output, meaning the attacker can partially influence what the internal service receives. The upstream fix (PR novuhq/novu#11455, commit dabfd66457c0b98ad46a8186e69f74f570a990c2) refactors Discord, GetStream, Grafana On-Call and the other affected chat providers onto new helpers, resolveSafeChatWebhookUrl and safeChatWebhookJsonRequest, replacing the per-provider axios instances so all chat webhooks inherit the same URL validation and DNS pinning as generic webhooks; the accompanying spec changes show responses now read from a normalized response object (for example response.body.id / response.body.timestamp and lowercased x-webhook-id headers) rather than raw axios response.data.

Know when Novu gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L
vuln.today AI 5.4 MEDIUM

Network-reachable, low-complexity SSRF requiring an authenticated user (PR:L); blind POST to internal services yields limited confidentiality and integrity (C:L/I:L) and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
Low

Lifecycle Timeline

2
Patch available
Sep 22, 2026 - 17:17 EUVD
CVE Published
Sep 22, 2026 - 15:49 cve.org
MEDIUM 5.3

DescriptionCVE.org

Novu provides an API for sending notifications through multiple channels. Prior to 3.18.0, Novu accepts chat webhook URLs from subscriber credentials.webhookUrl, channel endpoint endpoint.url, event payload.webhookUrl, and event overrides.webhookUrl, then passes the selected endpoint.url through send-message-chat.usecase.ts to raw HTTP requests in the Slack, Discord, Mattermost, Microsoft Teams, Grafana On-Call, Ryver, Rocket.Chat, GetStream, and Zulip providers. An authenticated user can supply an internal or otherwise restricted destination because these paths do not apply normalizeOutboundHttpUrl, assertSafeOutboundUrl, or the DNS-pinned safeOutboundJsonRequest protection used by the generic webhook providers. The Novu worker can consequently issue attacker-directed POST requests to internal network services and cause interactions or actions supported by those services. This issue is fixed in version 3.18.0.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Medium
popular open-source notifications-infrastructure platform, self-hosted but not ubiquitous
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy