總機:020-87516161 傳真:020-87516161-8040
地址:廣州市天河北路898號信源大廈3206-3211室 郵編:510660
安全服務 > 安全公告 > 關(guān)于Node.js存在反序列化遠程代碼執(zhí)行漏洞的安全公告
安全公告編號:CNTA-2017-0010
近日,國家信息安全漏洞共享平臺(CNVD)收錄了Node.js反序列化遠程代碼執(zhí)行漏洞(CNVD-2017-01206,對應?CVE-2017-594)。攻利用漏洞執(zhí)行遠程執(zhí)行操作系統(tǒng)指令,獲得服務器權(quán)限。由于目前驗證代碼已經(jīng)公開,極有可能誘發(fā)大規(guī)模網(wǎng)站攻擊。
一、漏洞情況分析
Node.js是一個Javascript運行環(huán)境(runtime),對Google V8引擎進行了封裝。Node.js同時也是一個基于Chrome JavaScript運行時建立的平臺,用于方便地搭建快速響應、易于擴展的網(wǎng)絡應用。
Node.js反序列化模塊node-serialize庫中的unserialize()函數(shù)未做安全處理,該漏洞通過傳遞調(diào)用JavaScriptIIFE函數(shù)表達式的方式實現(xiàn)遠程任意代碼執(zhí)行的效果。攻擊者可通過遠程攻擊獲得當前服務器運行環(huán)境權(quán)限,由于實際部署中node.js運行環(huán)境較多為操作系統(tǒng)root權(quán)限,因此可完全控制服務器主機。CNVD對該漏洞的綜合評級為“高危”。目前,相關(guān)利用方式已經(jīng)在互聯(lián)網(wǎng)上公開,近期出現(xiàn)攻擊嘗試爆發(fā)的可能。
二、漏洞影響范圍
根據(jù)漏洞研究者測試結(jié)果,由于涉及IIFE函數(shù)表達式,漏洞影響到Node.js現(xiàn)有的所有版本。根據(jù)CNVD秘書處的普查結(jié)果,目前互聯(lián)網(wǎng)上直接標定使用node.js運行環(huán)境的服務器約有6.8萬余臺,其中排名前五名的國家和地區(qū)是美國(占比58.9%)、中國(23.2%)、英國(4.1%)、荷蘭(3.6%)、德國(3.0%)。由于一個應用廣泛的名為Express的WEB應用開發(fā)框架是基于node.js運行環(huán)境的,根據(jù)CNVD秘書處初步普查結(jié)果,受該漏洞影響的網(wǎng)站服務器有可能超過70萬臺,后續(xù)CNVD將進一步進行漏洞實際威脅影響的精確評估,做好境內(nèi)用戶的應急響應工作。
三、漏洞修復建議
廠商尚未提供漏洞修補方案,請關(guān)注主頁更新情況:https://github.com/luin/serialize。同時也可以通過以下臨時解決方案加固服務器主機:
1. 修改/node_modules/node-serialize/lib/serialize.js中的FUNCFLAG值為隨機值并保證該值不被泄漏。
2. 確保Serialize字符串僅內(nèi)部發(fā)送。
3. 使用公鑰(RAS)加密Serialize字符串,確保字符串不被篡改。
附:參考鏈接:
https://youtu.be/GFacPoWOcw0(已公開的利用過程)
https://www.exploit-db.com/docs/41289.pdf(公開的分析信息)
http://www.cnvd.org.cn/flaw/show/CNVD-2017-01206
注:CNVD技術(shù)組成員單位杭州安恒信息技術(shù)有限公司及時報告了預警信息。