16日libssh官方發佈安全公告,由NCC安全組的Peter Winter-Smith披露了一個SSH2登陸身份驗證繞過漏洞(CVE-2018-10933)。攻擊者利用漏洞可以在沒有任何憑據的情況下成功進行身份驗證,登陸SSH。

漏洞描述

libssh版本0.6及更高版本在服務端代碼中存在身份驗證繞過漏洞。通過向服務端發送SSH2_MSG_USERAUTH_SUCCESS消息來替換服務端期望啓動身份驗證的SSH2_MSG_USERAUTH_REQUEST消息,攻擊者可以在沒有任何認證憑據的情況,擴過SSH身份驗證,完成SSH登陸,入侵服務器。截止目前還沒有相關漏洞PVC披露。

libssh項目在客戶端和服務器實現通訊過程,當新連接完成握手過程時,有不同的回調來處理數據包類型。SSH協議定義了在處理身份驗證請求時要發送的多個響應。其中一條消息是USERAUTH_SUCCESS,服務器發送該消息以通知客戶端認證成功,並且所請求的服務已準備就緒。相關代碼:

問題就出在這裏, Libssh沒有一種機制來確定是否允許傳入數據包來確定當前的鏈接狀態。攻擊者可以啓動連接,服務器將發送身份驗證查詢,攻擊者將使用USERAUTH_SUCCESS響應進行回覆。問題是此響應僅由能有服務器而不是客戶端發送,並且只能在身份驗證完成之後才發送。由於共享代碼,服務器錯誤地跳轉到該消息類型的處理程序,並標記完成的身份驗證階段。此時,守護進程設置SSH連接狀態就像客戶端已經過身份驗證一樣,攻擊者成功獲得了權限。

這個漏洞是由NCC集團的Peter Winter-Smith發現的,他私下向libssh透露了這個問題。今天提供了更新的libssh版本,並且同時發佈了問題的詳細信息。如果您安裝了libssh,特別是如果你正在使用服務器組件,請安裝此重要更新。這是一個很低級的安全漏洞,但幸好libssh並沒有被廣泛用於SSH服務器上,更常被用作SSH客戶端。

影響範圍

libssh0.6及以上的版本,使用該庫的各種軟件。Redhat官方安全中心已經將該漏洞評定爲危險漏洞(9.1)

Red Hat Enterprise Linux 7 和對應的Centos 7會受影響,Centos 6暫不受影響。

目前平臺廣泛使用的OpenSSH,不依賴libssh庫,所以不受該漏洞影響。

風險評級

CVE-2018-10933:嚴重

安全建議

目前該漏洞補丁已經由redhat和libssh組的Anderson Toshiyuki提供,各大發行版OS補丁估計隨後就會發出。

源碼安裝:

下載官方patch文件,重新安裝libssh修復漏洞。

防火牆ACL限制

禁止SSH對外,只針對特定允許的ip開放訪問權限,可通過iptables配置,

iptables -I INPUT -s (具體IP) -p tcp -m state --state NEW -dport 22 -j ACCEPT

iptables -A INPUT -p tcp -dport 22 -j REJECT --reject-with icmp-host-prohibited

查看原文 >>
相關文章