CVE-2026-64194 in Net::DNSinformación

Resumen

por VulDB • 2026-07-20

Las versiones de Net::DNS hasta la 1.55 para Perl permiten una Denegación de Servicio (DoS) mediante cadenas profundas de punteros de compresión DNS.

Net::DNS::DomainName::decode sigue los punteros de compresión del RFC 1035 recursando sobre sí mismo sin ningún límite de profundidad. Es posible construir un nombre que sature la pila de llamadas (al menos con respuestas TCP más grandes), lo que conduce a una potencial Denegación de Servicio.

La guardia `$link < $offset` previene cadenas hacia adelante y circulares, pero aún permite cadenas hacia atrás arbitrariamente largas. La caché por desplazamiento (`$cache`) se llena al inicio de cada llamada y solo acelera las re-travesías del mismo desplazamiento; el descenso inicial a través de una cadena nueva sigue recursando hasta la profundidad máxima.

Un paquete manipulado puede encadenar punteros de compresión de dos bytes de tal manera que cada uno apunte dos bytes antes que el anterior, produciendo una longitud de cadena de `offset / 2`. Para el campo de puntero de 14 bits (desplazamiento máximo 16383) esto da hasta ~8191 marcos recursivos. Para un mensaje DNS TCP, el límite es el campo de longitud de 16 bits (~32767 marcos). La pila C predeterminada de Perl solo maneja unas pocas miles de marcos; más allá de eso, el proceso recibe SIGSEGV o similar, lo que constituye una denegación de servicio para cualquier aplicación que analice datos DNS no confiables.

La vulnerabilidad se activa mediante `Net::DNS::Packet->new(\$wire)`, es decir, en cualquier punto donde la biblioteca decodifica un mensaje DNS desde la red.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

CPANSec

Reservar

2026-07-19

Divulgación

2026-07-20

Moderación

aceptado

Artículo

VDB-380728

CPE

listo

EPSS

0.00438

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!