BUGTRAQ ID: 26902 CVE ID:CVE-2007-6341 Perl Net::DNS是一款使用Perl实现的DNS解析应用程序。 Perl Net::DNS不正确处理畸形应答请求,远程攻击者可以利用漏洞对应用程序进行拒绝服务攻击。 问题存在于Net/DNS/RR/A.pm: if ($self->{"rdlength"} > 0) { $self->{"address"} = inet_ntoa(substr($$data, $offset, 4)); } 由于在使用substr时不正确验证$$data有4字节可读,可导致数据发送给inet_ntoa不足够而导致触发如下代码: ip_address = SvPVbyte(ip_address_sv, addrlen); if (addrlen == sizeof(addr) || addrlen == 4) addr.s_addr = (ip_address[0] & 0xFF) << 24 | (ip_address[1] & 0xFF) << 16 | (ip_address[2] & 0xFF) << 8 | (ip_address[3] & 0xFF); else croak("Bad arg length for %s, length is %d, should be %d", "Socket::inet_ntoa", addrlen, sizeof(addr)); 构建恶意的DNS应答可触发此漏洞,并导致PERL崩溃。 Net::DNS Net::DNS 0.60 目前没有解决方案提供: <a href=http://www.net-dns.org/ target=_blank>http://www.net-dns.org/</a>
BUGTRAQ ID: 26902 CVE ID:CVE-2007-6341 Perl Net::DNS是一款使用Perl实现的DNS解析应用程序。 Perl Net::DNS不正确处理畸形应答请求,远程攻击者可以利用漏洞对应用程序进行拒绝服务攻击。 问题存在于Net/DNS/RR/A.pm: if ($self->{"rdlength"} > 0) { $self->{"address"} = inet_ntoa(substr($$data, $offset, 4)); } 由于在使用substr时不正确验证$$data有4字节可读,可导致数据发送给inet_ntoa不足够而导致触发如下代码: ip_address = SvPVbyte(ip_address_sv, addrlen); if (addrlen == sizeof(addr) || addrlen == 4) addr.s_addr = (ip_address[0] & 0xFF) << 24 | (ip_address[1] & 0xFF) << 16 | (ip_address[2] & 0xFF) << 8 | (ip_address[3] & 0xFF); else croak("Bad arg length for %s, length is %d, should be %d", "Socket::inet_ntoa", addrlen, sizeof(addr)); 构建恶意的DNS应答可触发此漏洞,并导致PERL崩溃。 Net::DNS Net::DNS 0.60 目前没有解决方案提供: <a href=http://www.net-dns.org/ target=_blank>http://www.net-dns.org/</a>