Description
Novu provides an API for sending notifications through multiple channels. Prior to 3.15.0, the conditions filter webhook in libs/application-generic/src/usecases/conditions-filter/conditions-filter.usecase.ts passes the user-configured child.webhookUrl directly to axios.post without calling validateUrlSsrf. Evaluating a workflow condition can therefore make the worker send a POST request to a private or link-local service and return the response data for condition evaluation. The response is stored in execution details and exposed through GET /execution-details, which can disclose credentials from POST-capable metadata services or data from internal services, although metadata endpoints that require GET are not reachable through this path. This issue is fixed in version 3.15.0.
Published: 2026-11-09
Score: 8.3 High
EPSS: n/a
KEV: No
Impact: Remote Server Side Request Forgery
Action: Immediate Patch
AI Analysis

Impact

Novu’s conditions filter webhook passes a user‑defined webhookUrl directly to a worker’s HTTP client without validating the target address, allowing an attacker to trigger outbound POST requests to arbitrary internal or private services. The response payload is returned to the workflow condition evaluator and stored in execution details, which are exposed through a public GET endpoint. This enables disclosure of sensitive data or credentials from internal metadata services or other services that respond to POST.

Affected Systems

The issue exists in all Novu releases prior to version 3.15.0, including the 3.14.x series and earlier. Any deployment that exposes the conditions filter endpoint without the 3.15.0 safeguard is vulnerable.

Risk and Exploitability

With a CVSS score of 8.3 the vulnerability is high severity. No EPSS score is provided, and it is not listed in the CISA KEV catalog, suggesting the exploitation probability is unclear but potentially significant. The likely attack vector is an attacker creating a workflow condition with a malicious webhookUrl and triggering it; no special privileges are required on the Novu server. The exposure of execution details via a public endpoint can leak credentials or internal service data, making this a powerful foothold for lateral movement or data exfiltration.

Generated by OpenCVE AI on November 9, 2026 at 23:26 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Novu to version 3.15.0 or later to apply the official fix that restores validateUrlSsrf checks for webhook URLs.
  • Restrict access to the GET /execution-details endpoint, ensuring that only authorized users can read execution logs, or disable the endpoint entirely if not required.
  • Configure your network or reverse proxy to block outbound traffic from the Novu worker to internal or link‑local IP ranges, thereby limiting SSRF impact.

Generated by OpenCVE AI on November 9, 2026 at 23:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4x48-cgf9-q33f Novu has SSRF via conditions filter webhook bypasses validateUrlSsrf() protection
History

Mon, 09 Nov 2026 22:30:00 +0000

Type Values Removed Values Added
Description Novu provides an API for sending notifications through multiple channels. Prior to 3.15.0, the conditions filter webhook in libs/application-generic/src/usecases/conditions-filter/conditions-filter.usecase.ts passes the user-configured child.webhookUrl directly to axios.post without calling validateUrlSsrf. Evaluating a workflow condition can therefore make the worker send a POST request to a private or link-local service and return the response data for condition evaluation. The response is stored in execution details and exposed through GET /execution-details, which can disclose credentials from POST-capable metadata services or data from internal services, although metadata endpoints that require GET are not reachable through this path. This issue is fixed in version 3.15.0.
Title Novu: SSRF via conditions filter webhook bypasses validateUrlSsrf() protection
Weaknesses CWE-918
References
Metrics cvssV4_0

{'score': 8.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T22:14:57.669Z

Reserved: 2026-11-09T17:45:35.936Z

Link: CVE-2026-125114

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T23:30:18Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)