| CVE編號 | CVE-2018-5721,CVE-2018-8826,CVE-2018-5999,CVE-2018-6000,CVE-2017-14491,CVE-2017-14492,CVE-2017-14493,CVE-2017-14494,CVE-2017-14495,CVE-2017-14496,CVE-2017-13704 |
|---|---|
| 影響產品 | firmware 3.0.0.4.380.8228之前版本/ firmware 3.0.0.4.380.10446之前版本/ firmware 3.0.0.4.382.50276之前版本/ firmware 3.0.0.4.384.20648之前版本 |
| 解決辦法 | (1)根據路由器型號,自下列URL擇一參考: https://www.asus.com/Networking/RT-AC2900/HelpDesk_BIOS/ https://www.asus.com/Networking/RT-AC52U-B1/HelpDesk_BIOS/ https://www.asus.com/ca-en/Networking/RT-N600/HelpDesk_Download/ https://www.asus.com/sg/Networking/RT-AC58U/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RT-AC1200/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RT-AC1750/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RT-AC86U/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RT-ACRH13/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RTAC66U/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RTN12_D1/HelpDesk_BIOS/ https://www.asus.com/us/Networking/RTN66W/HelpDesk_BIOS/ https://www.asus.com/us/supportonly/RT-AC51U/HelpDesk_BIOS/ https://www.asus.com/us/supportonly/RT-AC55U/HelpDesk_BIOS/ https://www.asus.com/us/supportonly/RT-AC55UHP/HelpDesk_BIOS/ (2)各型設備皆有適用韌體,自行於各網頁下載,可得firmware 3.0.0.4.380.8228、firmware 3.0.0.4.380.10446、firmware 3.0.0.4.382.50276、firmware 3.0.0.4.384.20648之zip壓縮檔。 |
| 張貼日 | 2018-04-26 |
| 上稿單位 | TWCERT/CC |
●概述:
資訊產品大廠華碩,公告14款路由器及專配4種版本韌體,具數類瑕疵,最為嚴重者影響全數軟硬體,係變造資料輸入後,將擴權執行代碼;原始碼httpd.c內函數handle_request( )設計不當,身分認證失敗仍可處理POST請求;web.c內do_vpnupload_post( )及ej_update_variables( )函數,對身分驗證狀態邏輯判斷失常,可放行無授權之NVRAM組態更新,且未過濾輸入字串長度,導致更新設定時引發stack buffer overflow;駭客亦可藉惡意DNS和DHCPv6封包、IPv6 RA訊號,取得遠端系統控制權,造成溢位、DoS,並竊取機敏資料,ASUS發布最新韌體以解決安全問題,目前已有用戶反映設備遭遇不明設定異動情事,建議儘速下載安裝官方程式。
●編註:
(1)弱點機型清單
據統計,華碩至少14型路由器舊版韌體出現不同漏洞,仍有其餘RT系列設備具潛在風險。
(1-1)韌體版本早於3.0.0.4.380.8228,適用型號:RT-AC51U、RT-AC58U、RT-AC66U、RT-AC1750、RT-ACRH13、RT-N12 D1、RT-N66W等7型號。
(1-2)韌體版本早於3.0.0.4.380.10446,適用型號:RT-AC52U B1、RT-AC1200、RT-N600等3型號。
(1-3)韌體版本早於3.0.0.4.382.50276,適用型號:RT-AC55U、RT-AC55UHP等2型號。
(1-4)韌體版本早於3.0.0.4.384.20648,適用型號:RT-AC86U、RT-AC2900等2型號。
(2)嚴重RCE事件
經由非特定途徑,攻擊者得以輸入變造資料,擴權後執行代碼,實際關鍵函數不明,鑑於安全顧慮,官方未透露探勘細節,僅公告更新訊息,此漏洞遍及已知14型router機種,影響最廣,判仍有未經測試確認機型。
(3)授權與認證之邏輯錯誤
部分程式原始碼設計缺乏安全稽核邏輯,影響項次(1-1)、(1-2)、RT-AC55UHP等11種型號。
(3-1)在/router/httpd/httpd.c原始碼內,函數handle_request( )用以接收處理外部請求,
handle_request(void)
{...
handler->auth(auth_userid, auth_passwd, auth_realm);
auth_result = auth_check(auth_realm, authorization, url, file, cookies, fromapp);
if (auth_result != 0) 變數auth fails不為0,則程式繼續
{
if(strcasecmp(method, "post") == 0){ if (handler->input)
{handler->input(file, conn_fp, cl, boundary); 持續處理POST request
}
send_login_page(fromapp, auth_result, NULL, NULL, 0);
}
//if(!fromapp) http_logout(login_ip_tmp, cookies);
return;
}
}
由上述程式觀之,判斷式if (auth_result != 0),原意是當auth_result數值狀態為1時,表示認證成功,但auth_resultu也許出現2、3等數值,皆為認證失敗,但程式依然對輸入值當作正常狀況處理,使得位於LAN的駭客,即便身分認證失敗,依然能送入POST請求,避開http server驗證,以root權限發動RCE。
(3-2)韌體結構中vpnupload.cgi閘道介面提供VPN設定更新上傳功能,關鍵code區段位於router/httpd/web.c原始碼內do_vpnupload_post( )函數,該函數被呼叫來重設NVRAM組態變數,包括管理者密碼,故攻擊者不受限其帳號群組,透過特製request,能擅自執行非授權組態變更作業,啟動SSH背景程式,亦能直接循request途徑實施管理者操作。
(3-3)另有stack buffer overflow,與前項瑕疵同樣發生在router/httpd/web.c,涉及原始碼如後:
static int ej_update_variables(int eid, webs_t wp, int argc, char_t **argv)
{...
if (strlen(action_script) > 0) 若action_script非空值則成立
{
char *p1, *p2;
memset(notify_cmd, 0, sizeof(notify_cmd));
if((p1 = strstr(action_script, "_wan_if"))) 檢查action_script是否出現_wan_if之字串
{ p1 += 7;
strncpy(notify_cmd, action_script, p1 - action_script);
p2 = notify_cmd + strlen(notify_cmd);
sprintf(p2, " %s%s", wan_unit, p1); }
...
}
...
}
函數ej_update_variables( )目的為更新設定用途,只要變數action_script非空值即視作正常狀態,且action_script內容出現特定7byte字串_wan_if,則函數賡續進行,然囿於原程式設計未顧及action_script接收資料過長情境,若遭遇特製封包,駭客於request內置入”_wan_if”並接續超量字串,勢必越過action_script既定宣告資料型態,造成http server呼叫ej_update_variables( )時,觸發記憶體崩壞瑕疵,導致緩衝區溢位之衍生效應,當機或者RCE。
(4)網路協定運作缺陷
該批漏洞係源於Dnsmasq軟體去年安全公告改善項目,ASUS部分韌體瑕疵涉及類情,至2018年始修補完竣,確定影響項次(1-1)、(1-2)等10種型號。
(4-1)緩衝區溢位弱點3項:駭客送出變造過的DNS 封包、IPv6路由器公告(RA)訊號、DHCPv6請求;觸發無限制大量溢位及堆疊溢位,再導致remote code execution發生。
(4-2)資訊外洩:駭客變造DHCPv6封包,將觸發relay code弱點,並迴避地址空間布局隨機化(ASLR:Address space layout randomization)安全機制,從程序佔據中的記憶體獲取機敏訊息。
(3)服務阻斷弱點3項:送出變造DNS封包或大量DNS查詢,恐造成add_pseudoheader( )配置未使用記憶體,導致過度消耗;或觸發整數不足位(integer underflow,實數絕對值太小,無法表示而以0取代),使緩衝區讀取發生錯誤,最終發生DoS狀況,形成crash。
