PuTTY 0.84 版本已发布,重点修复 ECDSA 签名验证崩溃、RSA 密钥交换双重释放、Telnet 信任标记缺陷等多个低危安全问题。虽然漏洞影响多限于拒绝服务或特定场景下的提示欺骗,但仍建议用户尽快升级,并减少对 Telnet 等过时协议的依赖。
1、ECDSA签名验证漏洞修复
关键修复之一涉及 ECDSA 签名验证缺陷,该缺陷可能导致 PuTTY 在 SSH 握手过程中崩溃。问题源于椭圆曲线算术处理不当——当处理具有相同 y 坐标的点时,应用程序会失败。这种情况本身并非无效,但代码中的断言会导致客户端意外终止。由于此验证步骤发生在主机密钥验证之前,攻击者可提供特制密钥和签名,可靠地使客户端崩溃。
该漏洞影响自 0.71 版本以来的所有版本,波及 P256、P384 和 P521 等基于 NIST 的曲线,而 Ed25519 等现代曲线不受影响。其后果仅限于拒绝服务,可能中断会话或导致终端输出丢失。
2、RSA密钥交换双重释放漏洞
本次更新还修复了 PuTTY 在 RFC 4432 定义的基于 RSA 的密钥交换实现中的双重释放漏洞。当在错误条件下处理格式错误或异常短的 RSA 密钥时,应用程序会错误地两次释放同一内存结构,从而导致崩溃。该漏洞影响 0.72 至 0.83 版本,恶意服务器可通过故意发送截断的密钥远程触发。
与前一问题类似,此漏洞也发生在主机密钥验证之前,意味着中间人攻击者可加以利用。目前没有证据表明该漏洞可用于任意代码执行,其影响仅限于拒绝服务。
3、Telnet会话信任标记缺陷
本次发布还修复了 Telnet 会话中与 PuTTY“信任标记”功能相关的一个微妙但值得注意的问题。该视觉标记旨在帮助用户区分合法客户端生成的提示与服务器发送的潜在恶意提示。在早期版本中,当用户通过代理进行身份验证时,信任状态在 Telnet 会话开始前未正确重置。因此,所有后续服务器消息都被视为可信,可能导致用户输入代理密码等敏感信息。
虽然此场景需要特定条件,并依赖 Telnet 等传统协议,但在仍使用此类协议的环境中仍构成实际风险。
4、其他修复与建议
除上述修复外,还解决了与 EdDSA 签名处理相关的单独问题(CVE-2026-4115)。据 PuTTY 维护者 Alan Coopersmith 称,尽管外部机构为其分配了 CVE 编号,但该问题并不构成真正的安全漏洞。
总体而言,PuTTY 0.84侧重于提升稳健性,消除可能被滥用于破坏或欺骗的边缘案例漏洞。建议用户和组织及时升级,特别是在安全远程访问工具至关重要的环境中,并尽可能避免依赖 Telnet 等过时协议。