Publicado en

Alerta Crítica: Vulnerabilidad en libssh2 permite la ejecución de código remoto en clientes SSH

Descubierta una vulnerabilidad crítica en la biblioteca libssh2

Recientemente se ha hecho pública una prueba de concepto (PoC) para la vulnerabilidad identificada como CVE-2026-55200, un fallo crítico en libssh2, una de las bibliotecas de cliente SSH más utilizadas en el mundo. Con una puntuación CVSS 4.0 de 9.2, esta vulnerabilidad permite que un servidor SSH malicioso o comprometido provoque la corrupción de memoria en el cliente que se conecta, abriendo la puerta a la ejecución remota de código (RCE).

Lo más preocupante de este hallazgo es que el ataque no requiere credenciales ni interacción por parte del usuario, afectando a todas las versiones de la biblioteca hasta la 1.11.1 inclusive.

¿Por qué es relevante para su empresa?

A diferencia de otras vulnerabilidades de SSH que suelen dirigirse a los servidores, este fallo reside en el lado del cliente. libssh2 no es un servidor, sino una biblioteca embebida en multitud de herramientas y lenguajes que las empresas utilizan a diario, tales como:

  • curl: Utilizado para transferencias de datos en scripts y automatizaciones.
  • Git: Esencial para el desarrollo de software y control de versiones.
  • PHP: Ampliamente usado en entornos de desarrollo web.
  • Agentes de backup y actualizadores de firmware: Muchos dispositivos IoT y appliances empresariales dependen de esta biblioteca para sus comunicaciones seguras.

Debido a que muchas de estas implementaciones están vinculadas de forma estática, una simple actualización del sistema operativo podría no ser suficiente para mitigar el riesgo, ya que la biblioteca vulnerable permanece dentro del binario de la aplicación.

Análisis técnico: El origen del fallo

El problema técnico se localiza en la función ssh2_transport_read() dentro del archivo transport.c, encargada de procesar los paquetes SSH entrantes durante el intercambio inicial (handshake). El código leía un campo de longitud de paquete controlado por el atacante sin verificar un límite superior.

Mediante un desbordamiento de enteros (CWE-680), un atacante puede engañar al sistema para que asigne un búfer de memoria pequeño y luego escribir un paquete masivo sobre él, causando un desbordamiento de memoria en el montículo (heap overflow). Este es un método clásico para lograr el control total sobre el proceso del cliente.

Medidas de mitigación recomendadas

Dado que aún se está preparando un lanzamiento oficial etiquetado de libssh2 con el parche definitivo, las organizaciones deben adoptar una postura proactiva:

  1. Inventario de software: Identificar todas las aplicaciones que utilicen libssh2, prestando especial atención a copias estáticas o paquetes integrados que los gestores de actualizaciones convencionales podrían pasar por alto.
  2. Restricción de conexiones salientes: Hasta que se aplique el parche, limite las conexiones SSH salientes únicamente a servidores de confianza y verifique rigurosamente las claves de host.
  3. Actualización de fuentes: Si su equipo de ingeniería gestiona sus propias compilaciones, aplique el commit 97acf3d del repositorio oficial de libssh2 para corregir el fallo manualmente.
  4. Monitoreo de anomalías: Vigile cierres inesperados de clientes SSH o anomalías en el tamaño de los paquetes de red durante las conexiones externas.

En Intedya, recordamos la importancia de mantener una gestión de vulnerabilidades robusta. La seguridad de la cadena de suministro de software es hoy más crítica que nunca, y fallos en bibliotecas base como libssh2 demuestran que incluso las herramientas más confiables requieren una vigilancia constante.


Fuentes