安全研究

安全漏洞
Net::DNS远程拒绝服务及可预测ID序列漏洞

发布日期:2007-06-27
更新日期:2007-06-29

受影响系统:
Michael Fuhr Net::DNS 0.59
不受影响系统:
Michael Fuhr Net::DNS 0.60
描述:
BUGTRAQ  ID: 24669
CVE(CAN) ID: CVE-2007-3377,CVE-2007-3409

Net::DNS是用Perl实现的DNS解析器。

Net::DNS实现上存在漏洞,远程攻击者可能利用此漏洞导致DNS服务器被欺骗或拒绝服务。

在Net::DNS中ID序列是在header.pm中确定的:

{
my $id = int rand(MAX_ID);

sub nextid {
return $id++ % (MAX_ID + 1);
}
}

如果使用了这个模块的话就会设置$id,然后仅是简单的递增,这可能导致两个后果:

1) 序列号可预测,简化了DNS欺骗攻击;
2) 如果在fork服务器中使用Net::DNS的话,则通常会在父进程使用。除非父进程在接受请求之间进行DNS查询,否则每个子进程都会以相同的$id值开始并经历相同的id序列。由于源端口也可能是固定的,因此一个子进程很可能接受之前子进程所发送查询的回复。

如果发送了自我引用的畸形DNS报文(如www.example.<pointer>中的指针再次指向www)的话,Net::DNS中的PP实现可能会陷入死循环。

<*来源:Steffen_Ullrich (Steffen_Ullrich@genua.de
        Hjp
  
  链接:http://rt.cpan.org/Public/Bug/Display.html?id=23961
        http://rt.cpan.org/Public/Bug/Display.html?id=27285
*>

建议:
厂商补丁:

Michael Fuhr
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.net-dns.org/download/Net-DNS-0.60.tar.gz

浏览次数:2890
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障