他们在 openSSH 9.1 中发现了一个允许绕过 malloc 的漏洞

漏洞

如果被利用,这些漏洞可能允许攻击者未经授权访问敏感信息或通常会导致问题

最近 Qualys公司 (一家专注于云安全的科技公司) 广为人知 你发现了什么 一种绕过 malloc 的方法 和双重保护以使用 OpenSSH 9.1 中的漏洞启动交叉。

到目前为止,已经确定 这种脆弱性只是“理论上的”, 因为它不太可能创建有效的漏洞。 与此同时,创建有效漏洞利用的可能性仍然是一个大问题。

关于漏洞,有人提到 绕过保护的技巧 double free 并在 malloc 释放后使用 就是重新分配被占用的内存 通过 options.kex_algorithms 一旦它是免费的。

从 malloc 的角度来看,不会尝试释放、读取或写入已经空闲的内存; 然而,从 sshd 的角度来看,会发生别名攻击,因为指向两个不同对象的两个不同指针指向同一块内存,并且对一个对象的写入会覆盖另一个对象。

这打开了一个充满可能性的世界。

我们开始调查 Debian 书虫(它使用 glibc 代码
malloc),但我们最终切换到 OpenBSD 7.2,因为 OpenBSD
malloc(尽管它的防御性很强的编程)有两个特性
让它对这个特别的免费双重错误特别有趣:

该漏洞是由于双重释放 预认证阶段的内存区域。 为漏洞创造条件, 只需更改 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 一起提供。

快速更新:我们能够任意控制“rip” 通过这个错误(即我们可以在 sshd 的任何地方跳转 地址空间)在未打补丁的 OpenBSD 7.2 安装(运行
默认情况下为 OpenSSH 9.1)。 这绝不是故事的结局:这个电子对于第 1 步,跳过 malloc 和双重保护。

下面 可能根本不可行的步骤是:

– 第 2 步,不顾 ASLR、NX 和 ROP 执行任意代码
保护(这可能需要信息泄露,要么
同一个错误或次要错误);

– 第 3 步,逃离 sshd 沙箱(通过一个小错误,要么在
特权父进程或减少内核攻击
肤浅)。

值得注意的是,所提出的原型只是攻击第一阶段的实施: 要创建有效的漏洞,您需要绕过 ASLR、NX 和 ROP 保护机制,并突破沙箱隔离,这是不太可能的。

解决绕过ASLR、NX和ROP的问题需要获取地址信息,这可以通过识别导致信息泄露的另一个漏洞来完成。 特权父进程或内核进程中的错误可以帮助突破沙箱。

提到该漏洞的工作方式如下:

  • -首先,在 compat_kex_proposal() 中释放 options.kex_algorithms,假装 ssh 客户端是一个旧的“FuTTY”客户端。
  • - 其次,重新分配options.kex_algorithms占用的片段,结构为EVP_AES_KEY,大小为264字节,在密钥交换阶段选择“aes128-ctr”密码。 这种重新分配的发生概率约为 1/32。
  • – 第三,在 kex_assemble_names() 中(通过 mm_getpwnamallow())(再次)释放被 options.kex_algorithms 占用的块(现在被 EVP_AES_KEY 结构占用)。 当且仅当块的第一个字节是“+”、“-”或“^”时才会发生这种情况(否则 kex_assemble_names() 返回错误并调用 fatal_fr())。
  • – 第四,被 options.kex_algorithms 占用的块(现在仍然被引用为 EVP_AES_KEY 结构)被重新分配,一个 300'A' 字节的字符串,“authctxt->user”或“authctxt ->style”在认证阶段。 这种重新分配以约 2/32 的概率发生,它有效地用“A”字节覆盖了整个 EVP_AES_KEY 结构。
  • – 最后,当 sshd 调用 EVP_Cipher() 时,它跳转到 0x4141414141414141,因为 EVP_AES_KEY 结构包含一个函数指针,该指针被我们的“A”字节覆盖并由 CRYPTO_ctr128_encrypt_ctr32()(通过 EVP_Cipher())调用。

最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。