2026 年 8 月 16 日,Windows 上最经典的 SSH / telnet 客户端 PuTTY 发布了 0.85 稳定版。与以往的版本不同,0.85 没有任何新功能,全部是安全修复——而且其中几项是可以被远程触发的。如果你还在用旧版本,这一版值得尽快升级。

PuTTY 是什么

PuTTY 是一个开源的终端仿真器与网络客户端,最早由 Simon Tatham 于 1999 年发布,如今依然是 Windows 上使用最广的 SSH 客户端之一。它体积小、无需安装(单个 exe 即可运行)、支持多种协议,是运维和嵌入式调试的常备工具。

PuTTY 其实是一个套件,下载包里包含多个各司其职的工具:

工具作用
putty.exe图形界面客户端(SSH / telnet / rlogin / raw / serial)
plink.exe命令行连接工具,脚本化运维与自动化采集
pscp.exe / psftp.exe基于 SSH 的文件传输(SCP / SFTP)
puttygen.exe密钥生成与格式转换(如 OpenSSH ↔ PPK)
pageant.exeSSH 认证代理(密钥 agent,常驻后台托管私钥)

其中 plink.exe 用于命令行自动化采集的用法,我此前在 《plink.exe 命令行工具:telnet 连接设备调试与数据采集》 里专门写过,这里不再展开。

0.85 版本:四项安全修复

0.85 的变更列表只有 4 项,全部与安全相关,没有功能改动。这正是它值得单独说一说的原因——一个只修漏洞不发功能的版本,往往意味着漏洞比较要紧。

#类型漏洞位置能否远程触发潜在后果
1安全修复Pageant 中的 use-after-free✅ 可远程触发可能 被利用执行任意代码(尚未证实)
2安全修复OpenSSH encrypt-then-MAC 密码模式缓冲区溢出✅ 可远程触发内存破坏
3安全修复私钥解密时的缓冲区溢出⚠️ 需恶意构造的私钥内存破坏
4DoS 修复连接建立阶段✅ 服务器 / 中间人可触发紧密循环、启动时无限消耗内存

下面逐条说明。

1. Pageant 的 use-after-free

Pageant 是 PuTTY 的 SSH 认证代理,它常驻后台、替你托管私钥,其他程序通过它完成签名而不直接接触私钥。0.85 修复了 Pageant 中一个可被远程触发的 use-after-free(释放后使用)漏洞。

官方措辞很克制——「Might be exploitable to execute code, although this is not proved.」意思是「可能被利用执行代码,但尚未证实」。即便如此,对于常驻后台、直接接触私钥的 agent 组件来说,这类内存破坏漏洞的优先级始终是最高的。

2. OpenSSH encrypt-then-MAC 模式的缓冲区溢出

这是一个位于加密层的可远程触发缓冲区溢出,出问题的是 encrypt-then-MAC 这种密码模式。不过它的触发条件比较苛刻:

该模式仅在服务器不支持其他任何加密模式时才会被使用

也就是说,只有当远端服务器刻意(或被迫)只提供这一种模式时,这条攻击路径才走得通。但「远程可触发」本身就是足够的升级理由——SSH 客户端面对的是不可信的远端主机。

3. 私钥解密时的缓冲区溢出

这一项与私钥文件有关:当 PuTTY 解密一个被恶意构造的私钥时,可能触发缓冲区溢出。官方对此的定性是:

Only triggerable on purpose if you let somebody else generate your key for you.

即「只有当你让别人替你生成密钥时,才可能被故意触发」。换句话说,你只要坚持自己生成私钥、不接收来路不明的私钥文件,这条路径基本走不通。但它提醒我们一个老生常谈的原则:私钥文件本质上是不可信输入,导入前要确认来源。

4. 拒绝服务:紧密循环与无限内存消耗

最后一项是 DoS(拒绝服务)修复,包含两个表现:

  • 服务器可以让 PuTTY 陷入紧密循环(tight loop),卡死占满 CPU;
  • 即便只是中间人攻击者,也能让 PuTTY 在启动阶段消耗无限内存。

第二条尤其值得注意——它意味着不需要连上恶意服务器,只要网络路径上有人劫持响应,就能在连接建立的早期阶段把 PuTTY 拖垮。

为什么要尽快升级

综合来看,0.85 是一版「越早升级越好」的发布:

  1. 可远程触发的漏洞占了多数(4 项里 3 项可由远端或中间人触发);
  2. Pageant 常驻后台且手握私钥,是攻击面里最敏感的一环;
  3. 没有功能改动,意味着升级几乎没有行为变化成本,不用担心兼容性回归。

尤其对于经常用 PuTTY 连接陌生服务器、或开着 Pageant 做 key agent 的同学,建议直接升级到 0.85。

下载与校验

下载页面提供了 Windows 各架构(64 位 / 32 位的 x86 与 Arm)的安装包、独立 exe 和 zip,以及 Unix 源码包。官网地址:

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

下载后建议核对校验和,页面提供了 MD5、SHA-1、SHA-256、SHA-512 以及 GPG 签名。Windows 下可以用自带的 certutil 计算 SHA-256:

certutil -hashfile putty.exe SHA256

检查当前版本

不确定自己装的是哪个版本?命令行工具直接 -V

plink.exe -V
# 或
putty.exe -V

图形界面则在 Help → About PuTTY 里查看。如果版本低于 0.85,就该更新了。

总结

PuTTY 0.85 是一次罕见的「纯安全修复」发布:4 项改动全部是漏洞与 DoS 修复,其中 Pageant 的 use-after-free 和加密层缓冲区溢出均可被远程触发。升级成本极低(无功能变化),安全收益明确。

这也再次印证了那句话——像 PuTTY、SSH 客户端这类直面不可信远端主机的工具,及时跟进安全更新,比追求新功能重要得多。