Vulnerabilidad en Net::CIDR::Set de RRWO (CVE-2026-19566)
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/08/2026
Última modificación:
23/10/2026
Descripción
Versiones de Net::CIDR::Set anteriores a la 0.23 para Perl permiten el agotamiento de la memoria y rangos de conjunto mal formados a través de longitudes de prefijo IPv6 ilimitadas.<br />
<br />
El método _encode acepta cualquier longitud de prefijo que coincida con “(0|[1-9][0-9]*)” y la pasa a _width2bits(), que construye la máscara como “’1’ x ($width + 8)”, un carácter por bit. El método _inc() luego desempaqueta la máscara empaquetada en un array de Perl de un escalar por byte, por lo que la longitud del prefijo por sí sola establece el tamaño de asignación: “::/100000000” construye una cadena de 100 MB y un array de 12.5 millones de elementos. El valor que se está probando se analiza, no solo los rangos configurados: contains() construye un conjunto a partir de su argumento, y _guess_coder() prueba el codificador IPv4 y luego el codificador IPv6, por lo que un conjunto solo IPv4 expande una longitud de prefijo IPv6 sobredimensionada antes de que la verificación de ancho de dirección mixta lo rechace.<br />
<br />
Cualquier llamador que pase entrada no confiable a contains() o add() puede agotar la memoria del proceso. Una longitud de prefijo superior a 128 también se almacena como un rango que no coincide con el bloque solicitado: 2001:db8::/129 se convierte a cadena sin cambios, contains() de su propia dirección base devuelve falso, y al eliminarlo de un conjunto se elimina la dirección base mientras que el conjunto aún se imprime como si lo cubriera.
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA


