Home

Description

Net::CIDR versions before 0.24 for Perl mishandle leading zeros in IP CIDR addresses, which may have unspecified impact. The functions `addr2cidr` and `cidrlookup` may return leading zeros in a CIDR string, which may in turn be parsed as octal numbers by subsequent users. In some cases an attacker may be able to leverage this to bypass access controls based on IP addresses. The documentation advises validating untrusted CIDR strings with the `cidrvalidate` function. However, this mitigation is optional and not enforced by default. In practice, users may call `addr2cidr` or `cidrlookup` with untrusted input and without validation, incorrectly assuming that this is safe.

PUBLISHED Reserved 2025-05-18 | Published 2026-02-27 | Updated 2026-02-27 | Assigner CPANSec

Problem types

CWE-704 Incorrect Type Conversion or Cast

Product status

Default status
unaffected

Any version before 0.24
affected

References

blog.urth.org/...security-issues-in-perl-ip-address-distros/ related

github.com/...ommit/e3648c6bc6bdd018f90cca4149c467017d42bd10 patch

metacpan.org/dist/Net-CIDR/changes release-notes

cve.org (CVE-2021-4456)

nvd.nist.gov (CVE-2021-4456)

Download JSON