创建 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

添加评论