# Novu application-generic SSRF bypass via CGNAT blocklist gap

Source: https://junglewise.ai/threats/novu-application-generic-ssrf-bypass-via-cgnat-blocklist-gap-9fe42c0e  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-28. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

Severity: low · CVSS 3.1 · Published 2026-07-28

Novu's workflow and webhook filtering features include a security guard that blocks requests to private IP addresses, but it fails to block the shared address space (CGNAT) range 100.64.0.0/10. An attacker can exploit this gap to make the Novu service send HTTP requests to cloud metadata services (such as Alibaba Cloud's 100.100.100.200) or other internal services within that range, potentially exposing sensitive credentials or enabling further attacks on infrastructure.

Vendors: [Novu](https://junglewise.ai/threats/vendors/novu), [npm](https://junglewise.ai/threats/vendors/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 28 July 2026.

**Which products and versions are affected?** Novu Application-Generic < 3.17.0; @novu/application-generic (npm) SEMVER:introduced=0,fixed=3.17.0.

**Is there a fix for This vulnerability?** Yes. @novu/application-generic (npm): upgrade to 3.17.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.

**Am I affected?** Check whether you run Novu Application-Generic or @novu/application-generic (npm) 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/application-generic (npm): upgrade to 3.17.0 or later

  ```sh
  npm install @novu/application-generic@3.17.0
  ```


## Technical details

The vulnerability is an incomplete IP blocklist in the `validateUrlSsrf` function within @novu/application-generic. The guard uses a hand-written regex deny-list that covers RFC1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback, and link-local addresses, but omits the shared address space (CGNAT) range 100.64.0.0/10. This range is commonly used by cloud providers for metadata services and internal infrastructure. The flaw affects two product features: the Workflow HTTP request step and the Webhook filter condition, both of which call `validateUrlSsrf` before sending user-configured URLs. An attacker with workflow or webhook configuration privileges can bypass SSRF protection by specifying a URL in the 100.64.0.0/10 range. The vulnerability was patched in version 3.17.0 by expanding the regex blocklist to include this range.

## Affected products

- Novu application-generic < 3.17.0

## Timeline

- 2026-07-28: disclosed
- 2026-07-28: patched: Version 3.17.0 released with fix

## References

- [https://github.com/novuhq/novu/security/advisories/GHSA-vg6v-j97m-h5xq](https://github.com/novuhq/novu/security/advisories/GHSA-vg6v-j97m-h5xq)
- [https://github.com/novuhq/novu](https://github.com/novuhq/novu)
