Lucene search

K
seebugRootSSV:3073
HistoryMar 21, 2008 - 12:00 a.m.

Asterisk RTP Codec负载处理多个溢出漏洞

2008-03-2100:00:00
Root
www.seebug.org
10

0.97 High

EPSS

Percentile

99.7%

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>


                                                v=0
o=-&nbsp;817933771&nbsp;817933775&nbsp;IN&nbsp;IP4&nbsp;10.10.1.101
s=session-name
c=IN&nbsp;IP4&nbsp;10.10.1.101
t=0&nbsp;0
m=audio&nbsp;5000&nbsp;RTP/AVP&nbsp;0
a=rtpmap:780903144&nbsp;PCMU/8000