Skip to main content

Net::CIDR::Set CVE-2026-19566

| EUVDEUVD-2026-57150 HIGH
Improper Validation of Specified Quantity in Input (CWE-1284)
2026-08-12 CPANSec
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify endpoint accepting CIDR or IP input
  2. Delivery
    Craft oversized IPv6 prefix (e.g., ::/100000000)
  3. Exploit
    Submit to application calling contains() or add()
  4. Execution
    Library allocates 100MB string and 12.5M-element Perl array
  5. Persist
    Process memory exhausted
  6. Impact
    Application 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 contains() or add() on a Net::CIDR::Set instance without first enforcing prefix length bounds. The attack surface extends to IPv4-only sets because _guess_coder() tries the IPv6 coder as a fallback before the mixed-width check fires, meaning full allocation occurs regardless of the set's configured address family. No authentication is required (CVSS PR:N) and no non-default server configuration is involved - this is the default code path for any prefix string passed to the library. Exploitation is constrained to deployments where attacker-controlled CIDR notation reaches library methods; applications that use only hardcoded or pre-validated ranges are not affected. The secondary correctness bug (prefix lengths above 128 stored as malformed ranges) can be triggered by the same input class and affects access control logic independently of the DoS.

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 ::/100000000 as a CIDR parameter. The application passes this value to contains(), which invokes the IPv6 coder and allocates a ~100 MB string and a 12.5 million-element array before rejecting the input. Repeated concurrent requests exhaust available process memory, triggering an OOM kill or crashing the application without any authenticated session.

Act Now Prioritize within 24-48h. Why: HIGH severity + EPSS > 10%.
Patch available 16.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Net::CIDR::Set 0 <0.23

Affected Packages

euvd net_cidr_set fix: 0.23

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

Vendor (CPANSec) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
CVSS changed
Aug 12, 2026 - 20:22 NVD
7.5 (HIGH)
CVE Published
Aug 12, 2026 - 08:39 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 12, 2026 - 08:39 cve.org
HIGH 7.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Vendor-released patch: 0.23

Threat Intelligence Overview

EPSS Score
16.0%
Prevalence
Low
specialized Perl CPAN module for CIDR set operations
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 16.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity + EPSS > 10%
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: +16
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Net

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2026-111497 CRITICAL POC
9.2 Oct 21

Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compre

CVE-2023-38180 HIGH
7.5 Aug 08

.NET and Visual Studio Denial of Service Vulnerability. Rated high severity (CVSS 7.5), this vulnerability is remotely e

CVE-2026-69439 HIGH POC
8.8 Sep 08

Heap-based buffer overflow (CWE-122) in Microsoft .NET and Visual Studio allows a network-based unauthenticated attacker

CVE-2026-71328 HIGH POC
8.8 Sep 08

Heap-based buffer overflow in Microsoft Visual Studio 2022 and 2026 enables network-delivered remote code execution when

CVE-2026-62886 HIGH POC
7.8 Aug 11

Privilege escalation in Microsoft .NET runtimes (8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022 and 2026 results f

CVE-2026-62871 HIGH POC
7.8 Aug 11

Heap-based buffer overflow (CWE-122) in Microsoft .NET enables local code execution across all actively supported .NET r

CVE-2026-70354 HIGH POC
7.8 Aug 11

Local code execution via out-of-bounds write in Microsoft .NET allows an unauthenticated local attacker to achieve full

CVE-2026-62909 HIGH POC
7.8 Aug 11

Local privilege escalation in Microsoft .NET (versions 8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022/2026 allows

CVE-2026-62901 HIGH POC
7.5 Aug 11

Denial-of-service in Microsoft .NET runtimes and Visual Studio allows unauthenticated remote attackers to crash or hang

CVE-2026-62897 HIGH POC
7.0 Aug 11

Integer overflow in Microsoft .NET Framework and modern .NET runtimes enables local code execution with full process com

CVE-2026-62898 HIGH POC
7.5 Aug 11

Use-after-free memory corruption in Microsoft's QUIC protocol implementation (MsQuic) exposes sensitive heap memory to u

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy