Skip to content

n8n: Webhook Node IP Whitelist Bypass via Partial String Matching

Moderate severity GitHub Reviewed Published Jan 13, 2026 in n8n-io/n8n • Updated Jan 13, 2026

Package

npm n8n (npm)

Affected versions

>= 1.36.0, < 2.2.0

Patched versions

2.2.0

Description

Impact

The Webhook node’s IP whitelist validation performed partial string matching instead of exact IP comparison. As a result, an incoming request could be accepted if the source IP address merely contained the configured whitelist entry as a substring.

This issue affected instances where workflow editors relied on IP-based access controls to restrict webhook access. Both IPv4 and IPv6 addresses were impacted. An attacker with a non-whitelisted IP could bypass restrictions if their IP shared a partial prefix with a trusted address, undermining the intended security boundary.

Patches

This issue has been patched in version 2.2.0.

Users are advised to upgrade to v2.2.0 or later, where IP whitelist validation uses strict IP comparison logic rather than partial string matching.

Workarounds

Users unable to upgrade immediately should avoid relying solely on IP whitelisting for webhook security. Recommended mitigations include:

  • Adding authentication mechanisms such as shared secrets, HMAC signatures, or API keys.
  • Avoiding short or prefix-based whitelist entries.
  • Enforcing IP filtering at the network layer (for example, via reverse proxies or firewalls).

References

@csuermann csuermann published to n8n-io/n8n Jan 13, 2026
Published to the GitHub Advisory Database Jan 13, 2026
Reviewed Jan 13, 2026
Published by the National Vulnerability Database Jan 13, 2026
Last updated Jan 13, 2026

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(19th percentile)

Weaknesses

Use of Externally-Controlled Format String

The product uses a function that accepts a format string as an argument, but the format string originates from an external source. Learn more on MITRE.

Permissive List of Allowed Inputs

The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are explicitly allowed by policy because the inputs are assumed to be safe, but the list is too permissive - that is, it allows an input that is unsafe, leading to resultant weaknesses. Learn more on MITRE.

Improper Access Control

The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. Learn more on MITRE.

CVE ID

CVE-2025-68949

GHSA ID

GHSA-w96v-gf22-crwp

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.