安全研究人员针对广泛使用的 PuTTY SSH 和 Telnet 客户端中的一个关键漏洞发布了概念验证 (PoC) 漏洞利用。
该漏洞CVE-2024-31497允许攻击者恢复 PuTTY 版本 0.68 至 0.80 中使用 NIST P-521 椭圆曲线生成的私钥。
该漏洞源于 PuTTY在使用 P-521 曲线时偏向生成ECDSA随机数。
研究人员发现,每个随机数的前 9 位始终为零,从而可以使用点阵密码分析技术从大约 60 个签名中完全恢复私钥。
为了证明攻击的可行性,安全研究人员 Hugo Bond 在 GitHub 上发布了 PoC 漏洞。
PoC 利用随机数偏差从易受攻击的PuTTY 版本生成的一组签名中恢复私钥。
攻击者可以通过多种方式获取所需的签名,例如设置恶意 SSH 服务器并从连接的 PuTTY 客户端捕获签名,或者从签名的 Git 提交或使用 PuTTY 作为 SSH 代理的其他源中提取签名。
该漏洞不仅影响 PuTTY 客户端,还影响其他几个包含易受攻击的 PuTTY 版本的流行工具,包括:
FileZilla 3.24.1 – 3.66.5
WinSCP 5.9.5 – 6.3.2
TortoiseGit 2.4.0.2 – 2.15.0
TortoiseSVN 1.10.0 – 1.14.6
PuTTY 开发人员已发布 0.81 版本来解决该缺陷,并且大多数受影响的第三方工具也可以使用修补版本。
然而,如果攻击者拥有由易受攻击的版本生成的大约 60 个签名,则仍然可以进行攻击。
因此,任何与 PuTTY 或相关工具一起使用的 NIST P-521 密钥都应被视为已泄露并立即撤销。
由于 PuTTY 是最流行的 SSH 客户端之一,尤其是在 Windows 上,因此该漏洞具有广泛的影响。
建议所有用户尽快升级到修补版本并更换任何可能暴露的密钥。
PoC 漏洞的发布增加了威胁行为者在野外利用此缺陷的可能性。
CVE-2024-31497 POC
https://github.com/HugoBond/CVE-2024-31497-POC