CVE-2026-42246Ruby Net::IMAP 库在特定版本前存在严重漏洞。该漏洞允许中间人攻击者欺骗 `Net::IMAP#starttls` 方法,使其在未实际启动 TLS 加密的情况下返回“成功”状态。这意味着应用程序误以为连接已加密,实际上数据仍以明文形式传输。攻击者可利用此漏洞拦截、窃取或篡改通过 IMAP 协议传输的敏感信息,包括电子邮件内容和登录凭证。该问题影响了多个版本分支,已在特定补丁版本中修复,建议用户尽快更新。
该漏洞的核心在于 Ruby Net::IMAP 库在处理 STARTTLS 命令时存在状态验证缺失。IMAP 协议规定 STARTTLS 命令用于将明文连接升级为加密通道。在受影响的版本中,`Net::IMAP#starttls` 方法的实现逻辑不够严密。当中间人攻击者拦截客户端与服务器之间的通信时,可以恶意操控服务器的响应报文。攻击者可以模拟服务器返回一个表示成功的“OK”响应,但实际上并未在底层建立 SSL/TLS 加密上下文。由于客户端代码未能正确校验后续数据的加密状态或 Socket 的实际属性,它错误地认为连接已进入安全模式。此时,客户端会继续发送敏感数据,如用户名、密码以及邮件内容。这些数据在传输过程中实际上仍然是明文,直接暴露在攻击者的监控之下。这种漏洞本质上是对加密协议握手过程的欺骗,使得应用层的安全机制被完全绕过,攻击者无需解密即可获取高价值信息。