Security Advisories (1)
CVE-2021-29662 (2021-03-31)

The Data::Validate::IP module through 0.29 for Perl does not properly consider extraneous zero characters at the beginning of an IP address string, which (in some situations) allows attackers to bypass access control that is based on IP addresses.

Changes for version 0.21

  • The 198.51.100.0/24 and 203.0.113.0/24 networks were mistakenly put in the unroutable list, rather than the testnet list. This has been fixed. Note that if you've just been using is_public_ipv4 in your code, there are no changes in the results.
  • Added the 6to4 anycast network - 192.88.99.0/24. Addresses in this network are not considered public and there is now a new is_anycast_ipv4() subroutine exported.
  • Added a number of missing reserved IPv6 networks. These are the IPv4-mapped block (::ffff:0:0/96), the discard prefix (100::/64), TEREDO (2001::/32), ORCHID (2001:10::/28), and documentation (2001:db8::/32) IPv6 networks. There are now is_ipv4_mapped_ipv6(), is_discard_ipv6(), is_teredo_ipv6(), is_orchid_ipv6(), and is_documentation_ipv6() subs. Note that the TEREDO and ORCHID networks are both subnets of the larger special network, and as such were already excluded by is_public_ipv6(), though arguably the TEREDO addresses _should_ be considered public.
  • Rewrote most of the docs to greatly reduce the amount of text and to improve the ToC on MetaCPAN and search.cpan.org.

Modules

IPv4 and IPv6 validation methods