Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint accepting CIDR or IP input
-
DeliveryCraft oversized IPv6 prefix (e.g., ::/100000000)
-
ExploitSubmit to application calling contains() or add()
-
ExecutionLibrary allocates 100MB string and 12.5M-element Perl array
-
PersistProcess memory exhausted
-
ImpactApplication denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Input size validation
|
| Exploitation Conditions | Exploitation requires that an application passes externally-supplied CIDR strings to |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H is well-supported by the mechanism: network-reachable, zero authentication, no user interaction, with availability as the sole confirmed impact. The 16% EPSS score stands out - library-level DoS issues typically cluster far below 5%, suggesting meaningful interest from automated exploitation tooling or security researchers. No CISA KEV listing means active exploitation is unconfirmed, and no POC is identified in the provided sources, so these remain distinct signals. The secondary correctness bug (silent incorrect membership for prefix lengths above 128) is not captured by CVSS's I:N rating and represents a potential access control bypass in applications using Net::CIDR::Set for security-relevant allowlist or blocklist decisions - a signal the raw CVSS score understates. Overall this is a genuine operational priority: low complexity, no privileges, and any internet-facing Perl service that pipes user-controlled CIDR strings into library methods without prior length validation is directly exposed to a single-request DoS. |
| Exploit ScenarioDerived | An attacker submits a crafted HTTP request to a Perl web application that uses Net::CIDR::Set to validate IP allowlists or geofencing rules, supplying |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 12, 2026
Memory exhaustion in Net::CIDR::Set before 0.23 exposes any Perl application using the library to remote denial of service when untrusted input reaches contains() or add(). The _encode method in lib/Net/CIDR/Set/IPv6.pm accepted unbounded prefix lengths and allocated memory proportional to the supplied value - ::/100000000 produces a ~100 MB string and a 12.5 million-element Perl array before the input is rejected - with no authentication required (CVSS PR:N, AV:N). No public exploit is identified at time of analysis, but the 16% EPSS score is elevated for a library-level DoS, and vendor-released patch version 0.23 is confirmed available.
RemediationAI
Upgrade to Net::CIDR::Set version 0.23 or later, confirmed available on CPAN with changelog at https://metacpan.org/release/RRWO/Net-CIDR-Set-0.23/changes. The fix is a single-line guard added to _encode in lib/Net/CIDR/Set/IPv6.pm - return if $mask > 128 - confirmed by patch commit e16b27db676fd1ca671fbb31208a22c1b1ba9724 at https://github.com/robrwo/perl-Net-CIDR-Set/commit/e16b27db676fd1ca671fbb31208a22c1b1ba9724.patch. If immediate upgrade is not feasible, add application-layer validation before any call to contains() or add(): reject IPv6 prefixes with mask length greater than 128 and IPv4 prefixes greater than 32 before they reach the library. This workaround must occur upstream of the library call, since allocation begins before the library's own (post-fix) guard executes. Note that the application-layer workaround does not address the secondary correctness bug; only upgrading to 0.23 fully resolves both issues.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Net::CIDR::Set is a Perl CPAN module (CPE: cpe:2.3:a:rrwo:net::cidr::set) for set operations on CIDR IP address blocks. The root cause is CWE-1284 (Improper Validation of Specified Quantity in Input): the _encode method in lib/Net/CIDR/Set/IPv6.pm accepted any prefix length matching the regex (0|[1-9][0-9]*) - any non-negative integer - and passed it to _width2bits(), which constructs a bitmask string as '1' x ($width + 8). The _inc() method then unpacks this string into a Perl array with one scalar per byte, making the attacker-supplied prefix length a direct linear multiplier on both string size and array element count. Critically, the vulnerability is not limited to IPv6-only sets: contains() calls _guess_coder(), which falls back to the IPv6 coder after the IPv4 coder fails, so an IPv4-only set fully allocates the oversized mask before the mixed-width guard rejects it. A secondary correctness defect exists independently of the DoS: prefix lengths above 128 are stored as ranges that do not cover the requested block, causing contains() on the base address to return false and set stringification to diverge from actual membership - a silent data integrity issue relevant to access control applications.
Know when Net 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Network-reachable with no authentication or user interaction; impact is availability-only via proportional memory allocation; no confidentiality or integrity loss confirmed from DoS path.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Net::CIDR::Set versions before 0.23 for Perl allow memory exhaustion and malformed set ranges via unbounded IPv6 prefix lengths.
The _encode method accepts any prefix length matching (0|[1-9][0-9]*) and passes it to _width2bits(), which builds the mask as '1' x ($width + 8), one character per bit. The _inc() method then unpacks the packed mask into a Perl array of one scalar per byte, so the prefix length alone sets the allocation size: ::/100000000 builds a 100 MB string and a 12.5 million element array. The value being tested is parsed, not just the configured ranges: contains() builds a set from its argument, and _guess_coder() tries the IPv4 coder and then the IPv6 coder, so an IPv4-only set expands an oversized IPv6 prefix length before the mixed address width check rejects it.
Any caller that passes untrusted input to contains() or add() can exhaust process memory. A prefix length above 128 is also stored as a range that does not match the requested block: 2001:db8::/129 stringifies back unchanged, contains() of its own base address returns false, and removing it from a set drops the base address while the set still prints as covering it.
Executive ViewAI
Any organization running Perl applications that depend on Net::CIDR::Set (before version 0.23) faces immediate risk of service disruption from a network-accessible denial-of-service vulnerability. An unauthenticated attacker can crash applications by overwhelming memory with specially crafted requests, with no public exploit identified at time of analysis. This exposes production systems to availability impact if not patched.
Vendor-released patch: 0.23
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compre
.NET and Visual Studio Denial of Service Vulnerability. Rated high severity (CVSS 7.5), this vulnerability is remotely e
Heap-based buffer overflow (CWE-122) in Microsoft .NET and Visual Studio allows a network-based unauthenticated attacker
Heap-based buffer overflow in Microsoft Visual Studio 2022 and 2026 enables network-delivered remote code execution when
Privilege escalation in Microsoft .NET runtimes (8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022 and 2026 results f
Heap-based buffer overflow (CWE-122) in Microsoft .NET enables local code execution across all actively supported .NET r
Local code execution via out-of-bounds write in Microsoft .NET allows an unauthenticated local attacker to achieve full
Local privilege escalation in Microsoft .NET (versions 8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022/2026 allows
Denial-of-service in Microsoft .NET runtimes and Visual Studio allows unauthenticated remote attackers to crash or hang
Integer overflow in Microsoft .NET Framework and modern .NET runtimes enables local code execution with full process com
Use-after-free memory corruption in Microsoft's QUIC protocol implementation (MsQuic) exposes sensitive heap memory to u
EUVD-2026-57150
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB