BUGTRAQ ID: 28308
CVE(CAN) ID: CVE-2008-1289
Asterisk是开放源码的软件PBX,支持各种VoIP协议和设备。
Asterisk在处理带有畸形数据的请求时存在漏洞,如果在INVITE消息的SDP负载中发送了无效的RTP负载类型号的话,就会导致写入无效的内存位置,允许攻击者控制某些部分的内存。
无效的内存写入发生在process_line()(channels/chan_sip.c文件5275行)所调用的 ast_rtp_unset_m_type()(main/rtp.c文件1655行)。ast_rtp_unset_mt_type()没有验证pt,而在ast_rtp_set_mt_type()(1642行)进行了验证。攻击者可以控制pt向很大的内存地址范围写入0。
如果在SIP INVITE消息的SDP负载发送了多于32个RTP负载类型数属性的话,就会覆盖栈缓冲区,允许攻击者控制写入的值。
在process_sdp()(channels/chan_sip.c文件4980行)中,rtpmap codecs存储到了32 int的数组found_rtpmap_codecs,映射中的codec数存储到了last_rtpmap_codec中。未经检查数组的大小便将 Codec附加到了数组(5258行),最多为64(SIP_MAX_LINES)。攻击者可以向缓冲区后的内存位置写入0到 256(MAX_RTP_PT)的值。
Asterisk Asterisk 1.6.x
Asterisk Asterisk 1.4.x
Asterisk Business Edition C.x.x
Asterisk AsteriskNOW 1.0.x
Asterisk Appliance Developer Kit SVN
Asterisk s800i 1.1.x
Asterisk
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://downloads.digium.com/pub/telephony/asterisk target=_blank>http://downloads.digium.com/pub/telephony/asterisk</a>
<a href=http://www.asterisknow.org/ target=_blank>http://www.asterisknow.org/</a>
暂无评论