Asterisk PBX隧道驅(qū)動(dòng) 存在多個(gè)遠(yuǎn)程拒絕服務(wù)漏洞
瑞星 編譯 2007/07/23
受影響系統(tǒng):
- 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
不受影響系統(tǒng):
- 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
描述:
Asterisk是開放源碼的軟件PBX,支持各種VoIP協(xié)議和設(shè)備。
Asterisk IAX2的隧道驅(qū)動(dòng)(chan_iax2)中存在拒絕服務(wù)漏洞。如果Asterisk在有效會(huì)話中接收到了LAGRQ或LAGRP幀,就可能觸發(fā)空指針異常。負(fù)責(zé)解析入站幀的代碼可以正確地解析IAX幀中的信息單元,然后將指針設(shè)置為空表示沒有與這個(gè)幀相關(guān)的原始數(shù)據(jù)負(fù)載,但沒有將原始負(fù)載中用于表示字節(jié)數(shù)的變量設(shè)置為0。由于原始數(shù)據(jù)長(zhǎng)度為非0,處理LAGRQ和LAGRP幀的代碼就會(huì)試圖從空指針拷貝數(shù)據(jù),導(dǎo)致崩潰。
Asterisk輕型隧道驅(qū)動(dòng)(chan_skinny)中存在拒絕服務(wù)漏洞。如果Asterisk所接收到的報(bào)文聲明長(zhǎng)度為0到3之間,之后為所聲明長(zhǎng)度+
4或更多字節(jié),則由于超長(zhǎng)的memcpy可能會(huì)導(dǎo)致出現(xiàn)分段錯(cuò)誤。
Asterisk在RTP棧的STUN實(shí)現(xiàn)中存在拒絕服務(wù)漏洞。如果Asterisk在活動(dòng)的RTP端口上接收到了特制的STUN報(bào)文的話,指針就可能超過可訪問的內(nèi)存。負(fù)責(zé)解析入站STUN報(bào)文的代碼無法確認(rèn)表示STUN屬性的長(zhǎng)度和STUN屬性頭大小是否超過了可用的數(shù)據(jù),因此數(shù)據(jù)指針可能超過可訪問的內(nèi)存,導(dǎo)致崩潰。成功攻擊要求啟用了chan_sip、chan_gtalk、chan_jingle、chan_h323、chan_mgcp或chan_skinny。
臨時(shí)解決方法:
向/etc/asterisk/modules.conf中添加noload => chan_skinny.so,然后重啟Asterisk。
廠商補(bǔ)丁:
Asterisk
目前廠商已經(jīng)發(fā)布了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問題,請(qǐng)到廠商的主頁下載:
ftp://ftp.digium.com/pub/telephony/asterisk
http://www.asterisknow.org/
ftp://ftp.digium.com/pub/telephony/aadk/
http://it.rising.com.cn
相關(guān)鏈接: