按 Enter 到主內容區
:::

TWCERT-電子報

:::

交換機系統Asterisk配置記憶體不足,肇生存取衝突

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2019-04-03
  • 點閱次數:635
交換機系統Asterisk配置記憶體不足,肇生存取衝突

CVE編號

CVE-2018-19278

內文

●概述:
以C語言開發的Asterisk,是首個輕量級軟體式交換機(PBX),具備語音信箱、線上會議、互動應答等功能,可運行於Linux、NetBSD、OpenBSD、FreeBSD、Mac OS X、Solaris、Windows等平台,據Jan Hoffmann研究,Asterisk在計算domain name字串所需緩衝區時出錯,僅獲得壓縮資料長度,即經由dns_srv_alloc()、dns_naptr_alloc()兩函數配置記憶體,然實際儲存資料卻是展開後域名字串,若遭遇偽冒response探勘手法,即可能發生越界寫入,引發記憶體區段錯誤(segfault),干擾其他程序運行而中斷服務,Digium已公告改良版本,使用單位請儘速升級。
●編註:
(1)緩衝區配置錯誤
Asterisk程式內專門處理SRV及NAPTR之lookups紀錄的函數中,有dns_srv_alloc()、dns_naptr_alloc(),兩者目的皆是為了lookups紀錄中domain name字串變數配置適當buffer,故呼叫dn_expand()去計算所需byte量,以便將解壓縮的域名字串存入ast_dns_srv_record 或 ast_dns_naptr_record資料結構中,可是dn_expand()實際取得數值卻是domain name壓縮過的資料長度,並非展開後的域名字串長度,假設某網域20字元,壓縮編碼後僅10bytes,當然buffer size不夠,但儲存domain name時缺乏檢查,直接越界覆蓋記憶體,造成Segmentation fault,破壞其他程序運行穩定性。
(2)資料勘誤
Digium, Inc官網資料顯示此漏洞CVE編號,然securitytracker 網站(https://securitytracker.com/id/1042142)卻顯示無編號;另Digium, Inc描述駭客探勘手法為惡意response,securitytracker網站卻記載為request,兩者頗有差距。

影響產品

Asterisk 15.6.2之前版本 /Asterisk 16.0.1之前版本

解決辦法

連結https://downloads.asterisk.org/pub/telephony/asterisk/releases/,下載asterisk-16.0.1.tar.gz或asterisk-15.6.2.tar.gz
回頁首