CVE-2024-31497: Vulnerabilidad Crítica de PuTTY Expone Claves Privadas
Se ha descubierto una grave vulnerabilidad de seguridad (CVE-2024-31497) en el popular cliente SSH PuTTY (versiones 0.68 a 0.80), afectando a una amplia gama de software incluyendo FileZilla, WinSCP, TortoiseGit y TortoiseSVN. Este defecto debilita drásticamente las claves privadas utilizadas en el algoritmo ECDSA con la curva NIST P-521, dejándolas fácilmente recuperables por atacantes. Esta falla fue descubierta por los investigadores de seguridad Fabian Bäumer y Marcus Brinkmann de la Universidad de Ruhr en Bochum.
¿Cual es exactamente el problema?
La vulnerabilidad CVE-2024-31497 reside en cómo PuTTY genera valores aleatorios (números únicos) utilizados dentro del proceso de firma ECDSA. En la configuración NIST P-251, la aleatoriedad está fuertemente sesgada. Los atacantes pueden explotar este sesgo para reconstruir la clave privada después de recopilar solo unas 60 firmas creadas con la clave comprometida.
¿Quién está en riesgo?
Cualquier persona que utilice las versiones afectadas de PuTTY o productos relacionados como Filezilla para la autenticación SSH con claves ECDSA NIST P-521 está en riesgo. Los atacantes pueden obtener las firmas necesarias comprometiendo brevemente un servidor SSH al que te conectas o potencialmente desde fuentes públicas donde hayas utilizado la clave (como commits de Git firmados).
Esta vulnerabilidad no solo afecta a los usuarios de PuTTY, sino que también se extiende a varias otras herramientas:
- FileZilla (Versiones 3.24.1 – 3.66.5)
- WinSCP (Versiones 5.9.5 – 6.3.2)
- TortoiseGit (Versiones 2.4.0.2 – 2.15.0)
- TortoiseSVN (Versiones 1.10.0 – 1.14.6)
¿Cuáles son las consecuencias?
Una clave privada comprometida es un gran problema de seguridad. Los atacantes pueden suplantar la identidad, obteniendo acceso a cualquier servidor donde uses esa clave para autenticación. El daño persiste incluso después de que se parchee la vulnerabilidad: las claves previamente expuestas quedan permanentemente comprometidas.
¿Qué debes hacer?
- Identificar claves vulnerables: Verifica si usas claves ECDSA NIST P-521. En PuTTYgen, la huella comienza con «ecdsa-sha2-nistp521».
- Revocar claves comprometidas: Elimina las claves públicas comprometidas de todos los archivos authorized_keys en servidores y cualquier servicio en línea donde se utilicen (como GitHub).
- Generar nuevas claves: Crea nuevos pares de claves (idealmente utilizando Ed25519, que no se ve afectado) para reemplazar las comprometidas.
- Actualizar el software: Actualiza inmediatamente PuTTY a la versión 0.81 o posterior. Haz lo mismo para FileZilla (versión 3.67.0), WinSCP (versión 6.3.3), TortoiseGit (versión 2.15.0.1) y TortoiseSVN. Si no puedes actualizar TortoiseSVN, cambia a usar PuTTY Plink actualizado para conexiones SSH.
Notas Adicionales
Esta vulnerabilidad no expone firmas a través de un espionaje pasivo en la red. Un atacante necesita acceso a la red interna, es decir control activo de un servidor o acceso a tus datos firmados.