diff --git a/src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php b/src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php index 708b30fd8..95e82b613 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php +++ b/src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php @@ -407,15 +407,15 @@ class Util */ public static function isIPInCIDR($ip, $cidr) { - if (!self::isIpAddress($ip)) { + if (!self::isIpAddress($ip) || !self::isSubnet($cidr)) { return false; - } - - if (str_contains($ip, ':')) { + } elseif (str_contains($ip, ':') && str_contains($cidr, ':')) { return self::isIPv6InCIDR($ip, $cidr); + } elseif (!str_contains($ip, ':') && !str_contains($cidr, ':')) { + return self::isIPv4InCIDR($ip, $cidr); } + return false; - return self::isIPv4InCIDR($ip, $cidr); } /**