El fallo SSHole en OpenSSH (CVE-2026-123158): Ejecución remota de root en Alpine Linux mediante desbordamiento de hash

Análisis técnico de la vulnerabilidad CVE-2026-123158 en OpenSSH sobre musl libc. Vectores de ataque observados a las 9 horas de divulgación y protocolo de remediación inmediata.

Fecha de publicación: 2026.11.07

Severidad y vector
CVSS 8.1

Acceso root sin contraseñas ni claves SSH privadas

Tiempo de explotación activa
< 9 horas

Compromiso de honeypots registrado tras la divulgación pública

Superficie crítica afectada
musl + sin PAM

Alpine Linux expuesto en puerto 22 con sshd activo

Conclusión Clave ·Todo servidor OpenSSH desplegado sobre musl libc sin PAM con cuentas protegidas solo por clave debe parchearse a la versión 10.6p2 de inmediato.

Los atacantes comenzaron a explotar de forma masiva la vulnerabilidad CVE-2026-123158 (bautizada como SSHole) menos de nueve horas después de su publicación. El vector permite obtener una sesión interactiva con privilegios de administrador en servidores Linux sin necesidad de robar credenciales ni comprometer claves criptográficas.

La telemetría de seguridad confirmó accesos no autorizados con privilegios de root en entornos señuelo. Las sondas registraron la ejecución de comandos de reconocimiento como id, uname y hostname desde direcciones IP como 89.116.89.18, orientadas a perfilar contenedores y servidores perimetrales.

Mecanismo de explotación del CVE-2026-123158 y la colisión de asterisco en musl

El origen de la vulnerabilidad se remonta al parche introducido en 2016 para mitigar la enumeración de usuarios registrada bajo CVE-2016-6210. Dicho mecanismo intentaba equiparar los tiempos de respuesta computando un hash ficticio cuando el usuario solicitado carecía de contraseña válida en el sistema.

En distribuciones compiladas con la biblioteca estándar musl C sin módulos de autenticación conectables (PAM), la rutina criptográfica falla ante cargas de entrada anómalas. Un atacante no autenticado que envía una contraseña de longitud comprendida entre 257 y 1.024 bytes provoca el aborto del cómputo criptográfico interno.

Al fallar el cálculo, la función devuelve una cadena compuesta exclusivamente por un asterisco (*). En entornos Linux tradicionales, el archivo /etc/shadow almacena precisamente un asterisco en el campo de contraseña para designar cuentas deshabilitadas o restringidas exclusivamente a autenticación por clave pública.

Cadena de ejecución de la vulnerabilidad SSHole

Bypass de autenticación mediante colisión de estado de fallo

01 · Paso 01
Inyección de payload

El atacante envía una clave de entre 257 y 1.024 bytes al demonio sshd.

02 · Paso 02
Fallo en musl crypt

La biblioteca musl no procesa la longitud y devuelve el carácter asterisco (*).

03 · Paso 03
Comparación en /etc/shadow

sshd compara el asterisco devuelto con el asterisco de la cuenta sin contraseña.

04 · Paso 04
Acceso no autorizado concedido

La igualdad booleana resulta positiva y se abre una shell de root directa.

El demonio sshd ejecuta una comparación directa entre el valor retornado por el intento fallido y el valor persistido en el sistema operativo. Al coincidir ambos valores (*), el sistema valida la identidad de forma espuria y abre una sesión remota con los privilegios asignados a dicha cuenta.

El ataque no permite descifrar ni eludir cuentas que contengan hashes reales de contraseñas previamente configuradas. Su radio de impacto se concentra en cuentas administrativas o de servicio deliberadamente bloqueadas para uso de contraseña, como root o alpine.

Matriz de exposición arquitectónica y análisis comparativo de superficie

La vulnerabilidad no afecta de manera uniforme al ecosistema corporativo. El riesgo depende de la combinación precisa entre la biblioteca C del sistema operativo, el subsistema de autenticación activo y la configuración de las cuentas de usuario.

Las imágenes base de Alpine Linux destacan por su ligereza en infraestructuras de microservicios, pero su configuración por defecto prescinde de PAM y utiliza musl. Esta arquitectura deja expuestos los contenedores que ejecutan sshd de forma directa en lugar de apoyarse en agentes de transporte gestionados por el orquestador.

Arquitectura de sistemaBiblioteca CCapa PAMHash en shadowNivel de vulnerabilidadVector de mitigación
Alpine Linux (Default OpenSSH)musl libcDeshabilitadaDeshabilitado (*)Crítico (CVSS 8.1)Parchear a OpenSSH 10.6p2 o superior
Alpine Linux con cuentas con clavemusl libcDeshabilitadaHash válido (SHA-512)InmuneMantener rotación de contraseñas
Debian / Ubuntu ServerglibcHabilitadaDeshabilitado (*)InmuneSin acción obligatoria en runtime
Red Hat Enterprise Linux / RockyglibcHabilitadaBloqueado (!!)InmuneSin riesgo de colisión de retorno
Dispositivos embebidos con Dropbearmusl / uClibcDeshabilitadaDeshabilitado (*)InmuneArquitectura no basada en OpenSSH

En implementaciones corporativas con miles de instancias efímeras, los hosts bastion y los pods de depuración representan el principal riesgo de movimiento lateral. Un acceso no autenticado a través de estas interfaces entrega de forma inmediata credenciales de despliegue, tokens de ServiceAccount y secretos montados en memoria.

Los sistemas construidos sobre glibc gestionan los búferes de contraseñas de gran longitud sin volcar el carácter de escape a la salida estándar de verificación. Por consiguiente, las distribuciones empresariales como RHEL, SUSE o Ubuntu no experimentan esta coincidencia de cadenas en sus configuraciones estándar.

Protocolo de contingencia inmediata y triaje forense en tres fases

Los equipos de ingeniería de infraestructura deben asumir el compromiso de cualquier nodo Alpine expuesto directamente a Internet si este ejecutaba OpenSSH antes del parche. El intervalo de nueve horas entre la divulgación del código de explotación y los primeros escaneos masivos anula las ventanas de mantenimiento programadas.

Para neutralizar la amenaza y clasificar el estado de las máquinas afectadas, los administradores deben ejecutar el siguiente protocolo estructurado.

Secuencia operativa de remediación y auditoría

Plan de respuesta ante incidentes para infraestructuras con OpenSSH y musl

01 · Paso 01
Paso 1: Actualización del demonio

Instalar OpenSSH 10.6p2 y reiniciar el servicio sshd de inmediato.

02 · Paso 02
Paso 2: Inspección de bitácoras

Buscar patrones sospechosos de Accepted password en cuentas key-only.

03 · Paso 03
Paso 3: Triaje de persistencia

Verificar claves authorized_keys y binarios de escalado de privilegios.

1. Despliegue de parches y bloqueo de transporte

La solución definitiva reside en la actualización inmediata de los paquetes binarios provistos por los mantenedores de la distribución. La corrección implementada en OpenSSH 10.6p2 descarta el retorno genérico de fallo que permitía la equiparación con el carácter asterisco.

  • Actualización de paquetes: Ejecutar apk update && apk add --no-cache "openssh>10.6p1" en todos los entornos basados en Alpine.
  • Reinicio del demonio: Reiniciar el servicio mediante rc-service sshd restart o destruyendo y recreando los contenedores desde una imagen base corregida.
  • Aislamiento perimetral: Bloquear el puerto TCP 22 en grupos de seguridad e interfaces públicas, derivando el tráfico exclusivamente a redes privadas virtuales.

2. Triaje de integridad y búsqueda de accesos no autorizados

La auditoría forense debe centrarse en los registros de autenticación del sistema operativo. Es obligatorio verificar /var/log/messages o la salida del subsistema de syslog del contenedor en busca de autorizaciones anómalas por contraseña.

  • Patrón de detección en registros: Localizar cadenas exactas que contengan Accepted password for vinculadas a usuarios definidos formalmente sin contraseña.
  • Cuentas prioritarias de auditoría: Revisar accesos atribuidos a los identificadores root, alpine o cualquier cuenta de servicio configurada para operar únicamente mediante clave criptográfica.
  • Análisis de comandos no interactivos: Examinar registros de auditoría de procesos en busca de ejecuciones de id, uname, hostname o descargas mediante curl y wget.

3. Verificación de mecanismos de persistencia

Si se localiza un registro afirmativo de inicio de sesión por contraseña en una cuenta sin credencial asignada, la instancia debe catalogarse como totalmente comprometida. Las acciones de limpieza superficial no garantizan la erradicación del vector de ataque.

  • Auditoría de claves autorizadas: Inspeccionar minuciosamente el archivo /root/.ssh/authorized_keys y los directorios de usuario equivalentes para detectar llaves públicas añadidas durante la intrusión.
  • Revisión de elevación de privilegios: Validar la configuración del archivo /etc/doas.conf o /etc/sudoers y auditar los binarios con bits SUID activos generados recientemente.
  • Aislamiento y reemplazo del nodo: Terminar la instancia afectada de forma destructiva y redesplegarla desde plantillas limpias una vez aplicado el parche de OpenSSH.

Informes de Referencia Relacionados

Ver categoría completa →
Boletín Semanal

Resumen Semanal de Tecnología y Datos de Negocio

Análisis de software verificado, consideraciones clave y métricas de comercio cada semana.

Cancela tu suscripción en 1 clic cuando quieras. Cero spam.

* Es posible que recibamos una comisión de afiliado por los enlaces en este informe, sin coste adicional para usted ni impacto en nuestros datos.