按 Enter 到主內容區
:::

TWCERT-電子報

:::
發布日期:
字型大小:

Node.js釋出更新檔修補參數驗證漏洞

CVE編號 CVE-2017-14919
影響產品 Node.js Versions 4.8.2以後版本、Node.js Versions 6.10.2以後版本、Node.js Versions 8.x所有版本
解決辦法 官方已修正函式,一旦參數windowBits配賦到8,則以9代替,並發布修復檔,連結為:

https://nodejs.org/en/blog/release/v8.8.0

https://nodejs.org/en/blog/release/v6.11.5

https://nodejs.org/en/blog/release/v4.8.5

張貼日 2017-10-31
上稿單位 TWCERT/CC

●概述:
Node.js各版軟體存在windowBits參數驗證弱點,駭客可藉此造成DoS,Node.js提供對應之安全更新。
●編註:
(1) 伺服器端網頁開發工具Node包含大量公開函式庫,在zlib v1.2.9模組內有一函式zlib.createDeflateRaw({windowBits: 8}),其中參數windowBits係決定壓縮message時能占用多少記憶體,windowBits是以2為基底之對數(整數),介於8到15間,windowBits數值愈高,意味著通訊窗口越大,更需高度消耗記憶體,鎖定重複性位元進行壓縮。
(2) Node.js易於遭受遠端DoS攻擊,尤其是呼叫zlib.createDeflateRaw()時,囿於zlib v1.2.9模組部分變更,在模組中整數”8”若用在windowBits參數,Node zlib將之視作不合規則,zlib會當掉或者拋出exception狀況。
(3)至於駭客如何利用前述漏洞,則牽涉WebSocket協定,既然WebSocket是瀏覽器與伺服器進行即時通訊的技術,任何WebSocket client端在特定條件下,可以送出請求使windowBits數值為”8”,也許仍有其他攻擊途徑能遠端造成zLib初始運作即是一個size為2的8次方的通訊窗口。

回頁首