Skip to content
OpenAdvisories
Medium · 5.9 Public exploit CVE-2024-31497 EUVD-2024-29377GHSA-6p4c-r453-8743

In PuTTY 0.68 through 0.80 before 0.81, biased ECDSA nonce generation allows an attacker to recover a user's NIST P-521 secret key via a qu…

Published Apr 15, 2024 · Updated Nov 4, 2025 · Assigned by mitre

Description

In PuTTY 0.68 through 0.80 before 0.81, biased ECDSA nonce generation allows an attacker to recover a user's NIST P-521 secret key via a quick attack in approximately 60 signatures. This is especially important in a scenario where an adversary is able to read messages signed by PuTTY or Pageant. The required set of signed messages may be publicly readable because they are stored in a public Git service that supports use of SSH for commit signing, and the signatures were made by Pageant through an agent-forwarding mechanism. In other words, an adversary may already have enough signature information to compromise a victim's private key, even if there is no further use of vulnerable PuTTY versions. After a key compromise, an adversary may be able to conduct supply-chain attacks on software maintained in Git. A second, independent scenario is that the adversary is an operator of an SSH server to which the victim authenticates (for remote login or file copy), even though this server is not fully trusted by the victim, and the victim uses the same private key for SSH connections to other services operated by other entities. Here, the rogue server operator (who would otherwise have no way to determine the victim's private key) can derive the victim's private key, and then use it for unauthorized access to those other services. If the other services include Git services, then again it may be possible to conduct supply-chain attacks on software maintained in Git. This also affects, for example, FileZilla before 3.67.0, WinSCP before 6.3.3, TortoiseGit before 2.15.0.1, and TortoiseSVN through 1.14.6.

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 filezilla 3.67.0-1 —
Debian 14 putty 0.81-1 —
Debian 13 filezilla 3.67.0-1 —
Debian 13 putty 0.81-1 —
Debian 12 filezilla No fix yet —
Debian 12 putty 0.78-2+deb12u2 —
Debian 10 putty 0.74-1+deb11u1~deb10u2 DLA-3839-1
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS filezilla No fix yet —
Ubuntu 22.04 LTS putty +1 No fix yet —
Ubuntu 20.04 LTS putty +1 No fix yet —
Ubuntu 18.04 LTS putty +1 No fix yet —
Ubuntu 16.04 LTS putty +1 No fix yet —
ReleasePackageFixed inAdvisory
SUSE Package Hub 15 SP5 putty 0.81-bp155.2.6.1 openSUSE-SU-2024:0111-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed filezilla 3.67.0-1.1 openSUSE-SU-2024:13870-1
openSUSE Tumbleweed putty 0.81-1.1 openSUSE-SU-2024:13868-1
openSUSE Leap 15.5 putty 0.81-bp155.2.6.1 openSUSE-SU-2024:0111-1
ReleasePackageFixed inAdvisory
Alpine v3.24 putty 0.81-r0 —
Alpine v3.23 putty 0.81-r0 —
Alpine v3.22 putty 0.81-r0 —
Alpine v3.21 putty 0.81-r0 —
Alpine v3.20 putty 0.81-r0 —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 putty 0.81-r0 —
Alpine v3.18 putty 0.81-r0 —
Alpine v3.17 putty 0.81-r0 —
Alpine v3.16 putty 0.81-r0 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 4 repositories

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 6

References