安全研究

安全漏洞
Asterisk多个远程拒绝服务漏洞

发布日期:2007-07-18
更新日期:2007-07-20

受影响系统:
Asterisk Asterisk 1.4.x
Asterisk Asterisk 1.2.x
Asterisk Asterisk 1.0.x
Asterisk Business Edition B.x.x
Asterisk Business Edition A.x.x
Asterisk AsteriskNOW < beta7
Asterisk Appliance Developer Kit 0.x.x
Asterisk s800i 1.0.x
不受影响系统:
Asterisk Asterisk 1.4.8
Asterisk Asterisk 1.2.22
Asterisk Business Edition B.2.2.1
Asterisk AsteriskNOW beta7
Asterisk Appliance Developer Kit 0.5.0
Asterisk s800i 1.0.2
描述:
BUGTRAQ  ID: 24950
CVE(CAN) ID: CVE-2007-3763,CVE-2007-3764,CVE-2007-3765

Asterisk是开放源码的软件PBX,支持各种VoIP协议和设备。

Asterisk IAX2的隧道驱动(chan_iax2)中存在拒绝服务漏洞。如果Asterisk在有效会话中接收到了LAGRQ或LAGRP帧,就可能触发空指针异常。负责解析入站帧的代码可以正确地解析IAX帧中的信息单元,然后将指针设置为空表示没有与这个帧相关的原始数据负载,但没有将原始负载中用于表示字节数的变量设置为0。由于原始数据长度为非0,处理LAGRQ和LAGRP帧的代码就会试图从空指针拷贝数据,导致崩溃。

Asterisk轻型隧道驱动(chan_skinny)中存在拒绝服务漏洞。如果Asterisk所接收到的报文声明长度为0到3之间,之后为所声明长度+ 4或更多字节,则由于超长的memcpy可能会导致出现分段错误。

Asterisk在RTP栈的STUN实现中存在拒绝服务漏洞。如果Asterisk在活动的RTP端口上接收到了特制的STUN报文的话,指针就可能超过可访问的内存。负责解析入站STUN报文的代码无法确认表示STUN属性的长度和STUN属性头大小是否超过了可用的数据,因此数据指针可能超过可访问的内存,导致崩溃。成功攻击要求启用了chan_sip、chan_gtalk、chan_jingle、chan_h323、chan_mgcp或chan_skinny。

如果配置为允许未经认证的呼叫的话,IAX2隧道驱动中存在拒绝服务漏洞。攻击者可以向服务器的有效扩展发送大量NEW报文以非认证用户的身份初始化呼叫,这会导致将Asterisk系统上的资源分配出去;此外IAX2隧道驱动还会一直试图重新调度每个伪造呼叫的中继,导致很快耗尽系统资源,必须重启Asterisk才能恢复正常运行。

<*来源:Russell Bryant (russell@digium.com
        Jason Parker (jparker@digium.com
  
  链接:http://ftp.digium.com/pub/asa/ASA-2007-017.pdf
        http://secunia.com/advisories/26099/
        http://ftp.digium.com/pub/asa/ASA-2007-016.pdf
        http://ftp.digium.com/pub/asa/ASA-2007-015.pdf
        http://marc.info/?l=bugtraq&m=118581098508003&w=2
        http://secunia.com/advisories/26274/
*>

建议:
临时解决方法:

* 向/etc/asterisk/modules.conf中添加noload => chan_skinny.so,然后重启Asterisk。

厂商补丁:

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

ftp://ftp.digium.com/pub/telephony/asterisk
http://www.asterisknow.org/
ftp://ftp.digium.com/pub/telephony/aadk/

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