構建 OpenSSH 9.1 漏洞的進展

Qualys 找到了一種繞過 malloc 和雙重釋放保護的方法,利用 OpenSSH 9.1 中的漏洞來啟動向程式碼的控制權轉移,該漏洞被確定為創建有效漏洞的風險較低。 同時,創建有效漏洞的可能性仍然是一個大問題。

此漏洞是由預認證雙重釋放造成的。 若要為漏洞的顯現創造條件,只需將 SSH 用戶端橫幅變更為「SSH-2.0-FuTTYSH_9.1p1」(或其他舊的 SSH 用戶端橫幅變更為「SSH_BUG_CURVE25519PAD」和「SSH_OLD_DHGEX」標誌。 設定這些標誌後,「options.kex_algorithms」緩衝區的記憶體被釋放兩次。

Qualys 的研究人員在操縱漏洞時能夠獲得對「%rip」處理器暫存器的控制,該暫存器包含指向下一條要執行的指令的指標。 開發的利用技術可讓您將控制權轉移到未更新的 OpenBSD 7.2 環境中 sshd 進程位址空間中的任何點,預設隨 OpenSSH 9.1 提供。

值得注意的是,所提出的原型只是攻擊第一階段的實現——要創建有效的漏洞,必須繞過 ASLR、NX 和 ROP 保護機制,並逃脫沙箱隔離,但這是不可能的。 為了解決繞過ASLR、NX和ROP的問題,需要獲取地址信息,這可以透過識別另一個導致資訊外洩的漏洞來實現。 特權父行程或核心中的錯誤可以幫助退出沙箱。

來源: opennet.ru

添加評論