按 Enter 到主內容區
:::

TWCERT-電子報

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

受Bitvise SSH server∕client漏洞衝擊,資料傳送將意外終止

CVE編號
影響產品 SSH Client 7.41之前版本 /SSH Server 7.41之前版本 /FlowSsh 7.41之前版本
解決辦法 (1)SSH Client 7.42,連結https://dl.bitvise.com/BvSshClient-Inst.exe
(2)SSH Server 7.42,連結https://dl.bitvise.com/BvSshServer-Inst.exe
(3)FlowSsh 7.41,連結https://dl.bitvise.com/FlowSsh-741.zip
張貼日 2018-05-28
上稿單位 TWCERT/CC

●概述:
一個7人規模的居家工作型公司Bitvise,針對Windows平台遠端操作需求,以c++開發主流安全通道產品SSH server及SSH client(前身分別是WinSSHD與Tunnelier),輕巧的兩層式架構與保密性,令其在翻牆軟體排行榜名列前茅,該公司亦提供FlowSsh函式庫,令第三方可開發相容性程式,經測試相關軟體,發掘共同瑕疵,其zlib compression函式庫元件運作時,會讓多組SSH session在同一時間連線至server,形成race condition,彼此破壞session內解壓縮資料,妨礙SSH正常功能;另外Secure FTP送出SSH_FXP_CLOSE訊息後未追蹤處理進度,隨即關閉SFTP通道與SSH session,攻擊者藉惡意資料,可觸發記憶體存取錯誤,且無法記錄最終傳輸工作是否如預期般完成;而SSH server介面Control Panel匯入檔案功能,處理超過5000筆輸入則超載當掉,Bitvise已升級軟體版本解決異常事件。
●編註:
(1)共同瑕疵
在SSH server和SSH client,以及FlowSsh函式庫,因Bitvise成員採用類似設計邏輯,故隱藏相同型態缺陷。
(1-1)觸發競爭條件(race condition)
Bitvise軟體運行SSH(secure shell)時,為了對資料流加密壓縮,使用zlib compression函式庫元件,而zlib compression技術源於Crypto++ library,假若首個SSH session與次個SSH session皆須使用compression,兩者應依序提出需求,可是在SSH server啟動後,會讓兩個SSH session在同一時間點連線至SSH server端,彼此互搶資源,破壞對方session中的解壓縮資料,如此則race condition就直接阻礙SSH正常輸出,形成DoS;至於FlowSsh函式庫,可被用來開發應用程式,而該程式執行過程,如果面臨多人同步建立SSH session情境,亦會產生競爭條件而阻斷服務。
(1-2)SFTP(Secure FTP)弱點
安全檔案傳送協定Secure FTP算是Bitvise軟體之次系統功能,鑒於某些SFTP用戶端運作模式,會送出射後不理的SSH_FXP_CLOSE訊息,而緊接著訊息之後,隨即關閉SFTP通道與SSH session,SSH client就是按此模式送出SSH_FXP_CLOS而不續作追蹤,然網路環境總有潛在干擾,可能導致SSH server無法順利接收處理SSH_FXP_CLOSE請求,當然也無法如實記錄最後一次傳輸狀態,故無從掌握最終資料傳輸是否如預期般完工。當授權用戶於32 bit Windows作業系統環境發送特製資料,即能觸發非法記憶體存取錯誤,造成SFTP處理中斷,亦可能錯誤記錄用戶最近行為資訊,在64 bit Windows則不受影響。
(2)SSH server 控制台(Control Panel)漏洞
SSH server提供試用者介面Control Panel,其匯入檔案功能,處理超過5000筆活動頁籤,則超載而當掉,無法顯示新進資料。
(3)race condition名詞解釋
競爭條件、又名競爭危害(race hazard),描述一個系統或者程序的輸出取決於不受精確控制的事件出現順序,兩個訊號彼此競爭,來影響誰先輸出,常見於多執行緒技術之軟體,舉例來說,如果電腦中兩個以上程序同時試圖修改一個共享記憶體的內容,新資料正在寫入,舊資料仍在被讀取,因為缺乏並行控制,最後結果只能依賴個別程序的執行順序,一旦發生並行存取衝突,則最終結果是錯誤的,結局有多種情況:當機、非法操作並結束程式、讀取錯誤資料、寫入新資料非正確值。

回頁首