pppd軟件包中的一個漏洞剛剛向公眾披露 (CVE-2020-8597) 這會嚴重影響某些VPN服務,DSL連接以及以太網 因為發現的錯誤允許執行代碼將特殊設計的身份驗證請求發送到使用PPP(點對點協議)或PPPoE(以太網PPP)的系統。
正如我們提到的, 各種提供商經常使用這些協議 通過以太網或DSL建立連接,並且還用於某些VPN中,例如pptpd和openfortivpn。
為了測試系統對問題的敏感性, 準備了漏洞利用原型 已經 它對公眾開放。
關於裁決
該漏洞是由緩衝區溢出引起的 在可擴展身份驗證協議(EAP)實施中。
另一個邏輯故障導致eap_input()函數無法檢查在線路控制協議(LCP)階段是否協商了EAP。
這允許未經身份驗證的攻擊者發送EAP數據包 即使ppp由於缺少EAP支持或由於LCP階段同意的預共享密碼短語不匹配而拒絕了身份驗證協商。
eap_input中易受攻擊的pppd代碼將繼續處理EAP數據包並觸發堆棧緩衝區溢出。
大小未知的未經驗證的數據可用於破壞目標系統的內存。 pppd通常以高特權(系統或根)運行,並與內核驅動程序結合使用。 這使攻擊者有可能以root或系統級特權運行任意代碼。
有了這個, 可以在認證之前的階段進行攻擊 通過發送類型為EAPT_MD5CHAP的數據包進行傳遞,包括一個非常長的主機名,該主機名不適合分配的緩衝區。
由於代碼中有一個錯誤,無法檢查rhostname字段的大小, 攻擊者可以覆蓋緩衝區外部的數據 在堆棧上,並以root權限實現代碼的遠程執行。
該漏洞在服務器和客戶端上都可以看到。,即不僅服務器可以受到攻擊,而且嘗試連接到由攻擊者控制的服務器的客戶端也可以受到攻擊(例如,攻擊者可以首先通過漏洞對服務器進行黑客攻擊,然後再開始攻擊連接的客戶端)。
脆弱性 也影響了lwIP堆棧, 但lwIP的默認設置未啟用EAP支持。
受影響的版本和解決方案
因此,檢測到此故障 影響pppd版本2.4.2至2.4.8 包含在內,並且以補丁的形式解決。 你們中有些人可能知道,在發現並解決問題後很長時間才向公眾公開錯誤。 並且,儘管這花費了整個過程,但是仍然有一部分用戶必須執行相應的更新。
問題解決狀態可以查看 在主要Linux發行版的報告中。
這可以在 這些頁面: Debian, Ubuntu, RHEL,Fedora, SUSE, OpenWRT的, 拱,NetBSD。
在RHEL,OpenWRT和SUSE上,pppd軟件包的編譯包含“ Stack Smashing Protection”(-fstack-保護器»在gcc中),這限制了鎖定操作。
除了發行版之外,在某些Cisco(CallManager),TP-LINK和Synology產品(DiskStation Manager,VisualStation VS960HD和Router Manager)中也使用pppd或lwIP代碼確認了此漏洞。
因此,該補丁已可用 在大多數Linux發行版的存儲庫中,有些已經通過提供軟件包更新來實現它。
如果您想了解更多 關於找到的故障,您可以檢查詳細信息和更多信息 在下面的鏈接中。