Vulnerabilidad crítica en el cliente SSH PuTTY

Se ha descubierto una falla de seguridad crítica identificada como CVE-2024-31497 en el popular cliente SSH PuTTY, afectando a una amplia gama de software incluyendo FileZilla, WinSCP, TortoiseGit y TortoiseSVN. Esta falla debilita drásticamente las claves privadas utilizadas en el algoritmo ECDSA con la curva NIST P-521, volviéndolas fácilmente recuperables por atacantes.

  • CVE-2024-31497 (CVSS N/A): La vulnerabilidad radica en cómo PuTTY genera valores aleatorios (nonces) utilizados dentro del proceso de firma ECDSA. En la configuración NIST P-251, la aleatoriedad está muy sesgada, los atacantes pueden aprovechar este sesgo para reconstruir la clave privada después de recopilar solo unas 60 firmas creadas con la clave comprometida. 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 es vulnerable.

Los atacantes pueden obtener las firmas necesarias al comprometer brevemente un servidor SSH al que se conecte o desde fuentes públicas donde se ha utilizado la clave (como commits de Git firmados). Podrían llegar a suplantar identidades, permitiéndoles el acceso a cualquier servidor donde se use dicha clave para autenticarse. El daño persiste incluso después de que se solvente la vulnerabilidad, las claves previamente expuestas quedan permanentemente comprometidas.

Esta falla NO expone firmas mediante espionaje pasivo de la red. Un atacante necesita control activo de un servidor o acceso a sus datos firmados.

 Productos y versiones afectadas:

  • PuTTY: Versiones 0.68 – 0.80.
  • 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.

Solución:

Para mitigar la vulnerabilidad previamente descirta los usuarios deben actualizar los productos a las siguientes versiones corregidas:

  • PuTTY: Versión 0.81 o posterior.
  • FileZilla: versión 3.67.0.
  • WinSCP: Versión 6.3.3.
  • TortoiseGit: Versión 2.15.0.1.

Se recomienda, a los usuarios de TortoiseSVN, que utilicen Plink desde la última versión de PuTTY (0.81) cuando accedan a un repositorio SVN a través de SSH hasta que haya un parche disponible.

Específicamente, se resolvió cambiando a la técnica RFC 6979 para todos los tipos de claves DSA y ECDSA.

Recomendaciones:

  • Actualice el cliente SSH PuTTY lo antes posible a la versión 0.81. Haga lo mismo con FileZilla (versión 3.67.0), WinSCP (versión 6.3.3), TortoiseGit (versión 2.15.0.1).
  • Verificar si se utilizan claves ECDSA NIST P-521. En PuTTYgen, la huella digital comienza con «ecdsa-sha2-nistp521».
  • Eliminar las claves públicas comprometidas de todos los archivos authorized_keys en los servidores y de cualquier servicio en línea donde se utilicen (como GitHub).
  • Crear nuevos pares de claves (idealmente usando Ed25519, que no se ve afectado) para reemplazar las comprometidas.

Referencias: