CVE-2024-31497
 
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
2Exploited in Wild
-Decision
Descriptions
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.
En PuTTY 0.68 a 0.80 antes de 0.81, la generación nonce ECDSA sesgada permite a un atacante recuperar la clave secreta NIST P-521 de un usuario mediante un ataque rápido en aproximadamente 60 firmas. Esto es especialmente importante en un escenario en el que un adversario puede leer mensajes firmados por PuTTY o Pageant. El conjunto requerido de mensajes firmados puede ser legible públicamente porque están almacenados en un servicio público Git que admite el uso de SSH para la firma de confirmación, y Pageant realizó las firmas a través de un mecanismo de reenvío de agentes. En otras palabras, es posible que un adversario ya tenga suficiente información de firma para comprometer la clave privada de una víctima, incluso si no se utilizan más versiones vulnerables de PuTTY. Después de un compromiso clave, un adversario puede realizar ataques a la cadena de suministro del software mantenido en Git. Un segundo escenario independiente es que el adversario sea un operador de un servidor SSH en el que la víctima se autentica (para inicio de sesión remoto o copia de archivos), aunque la víctima no confíe plenamente en este servidor y la víctima utilice la misma clave privada. para conexiones SSH a otros servicios operados por otras entidades. Aquí, el operador del servidor fraudulento (que de otro modo no tendría forma de determinar la clave privada de la víctima) puede obtener la clave privada de la víctima y luego usarla para acceder no autorizado a esos otros servicios. Si los otros servicios incluyen servicios Git, nuevamente es posible realizar ataques a la cadena de suministro del software mantenido en Git. Esto también afecta, por ejemplo, a FileZilla anterior a 3.67.0, WinSCP anterior a 6.3.3, TortoiseGit anterior a 2.15.0.1 y TortoiseSVN hasta 1.14.6.
CVSS Scores
SSVC
- Decision:Track
Timeline
- 2024-04-04 CVE Reserved
- 2024-04-15 CVE Published
- 2024-04-17 First Exploit
- 2024-05-11 EPSS Updated
- 2024-08-19 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-338: Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
CAPEC
References (29)
URL | Date | SRC |
---|---|---|
https://github.com/sh1k4ku/CVE-2024-31497 | 2024-04-17 | |
https://github.com/HugoBond/CVE-2024-31497-POC | 2024-05-11 |
URL | Date | SRC |
---|---|---|
https://git.tartarus.org/?h=c193fe9848f50a88a4089aac647fecc31ae96d27&p=simon/putty.git | 2024-06-20 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Putty Search vendor "Putty" | Putty Search vendor "Putty" for product "Putty" | >= 0.68 < 0.81 Search vendor "Putty" for product "Putty" and version " >= 0.68 < 0.81" | - |
Affected
| ||||||
Filezilla-project Search vendor "Filezilla-project" | Filezilla Client Search vendor "Filezilla-project" for product "Filezilla Client" | < 3.67.0 Search vendor "Filezilla-project" for product "Filezilla Client" and version " < 3.67.0" | - |
Affected
| ||||||
Winscp Search vendor "Winscp" | Winscp Search vendor "Winscp" for product "Winscp" | < 6.3.3 Search vendor "Winscp" for product "Winscp" and version " < 6.3.3" | - |
Affected
| ||||||
Tortoisegit Search vendor "Tortoisegit" | Tortoisegit Search vendor "Tortoisegit" for product "Tortoisegit" | < 2.15.0.1 Search vendor "Tortoisegit" for product "Tortoisegit" and version " < 2.15.0.1" | - |
Affected
| ||||||
Tigris Search vendor "Tigris" | Tortoisesvn Search vendor "Tigris" for product "Tortoisesvn" | < 1.14.6 Search vendor "Tigris" for product "Tortoisesvn" and version " < 1.14.6" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 38 Search vendor "Fedoraproject" for product "Fedora" and version "38" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 39 Search vendor "Fedoraproject" for product "Fedora" and version "39" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 40 Search vendor "Fedoraproject" for product "Fedora" and version "40" | - |
Affected
|