SSHole en OpenSSH: cómo saber si su servidor o contenedor está expuesto

Datos al 11 de noviembre de 2026. Esta nota no es una primicia: el objetivo es explicar, con pasos concretos, si un servidor o un contenedor de su empresa puede estar expuesto a SSHole (CVE-2026-123158) y qué conviene hacer.

SSHole es una falla en el servidor de OpenSSH (sshd). En ciertas configuraciones, un atacante que llega al puerto SSH puede entrar a una cuenta sin conocer su contraseña, enviando una contraseña extraordinariamente larga. [1][2] No otorga acceso de administrador por sí sola. En Alpine, la cuenta root suele estar protegida por la opción predeterminada que impide el ingreso de root con contraseña; otra cuenta sí puede llegar a administrador si tiene permiso para ello, por ejemplo con doas. [3]

Qué sistemas están en riesgo

La falla está corregida en OpenSSH 10.6p2, publicada el 5 de noviembre de 2026. [1] Según el propio aviso y la ficha de la vulnerabilidad, el problema aparece en Linux cuando sshd se usa con la biblioteca musl y sin PAM (el mecanismo habitual de autenticación en muchas distribuciones). Alpine y muchos contenedores construidos sobre esa base entran en ese grupo. [1][2][3]

Los servidores habituales con glibc y PAM —el caso típico de Debian, Ubuntu y Red Hat Enterprise Linux en su instalación estándar— no reúnen esas condiciones. Red Hat declara que sus productos no están afectados. [6] Debian le asigna urgencia “unimportant”. [7] Ubuntu, actualizado el 11 de noviembre, figura el paquete openssh como no afectado; mantiene prioridad alta porque la falla está en el catálogo KEV de CISA. [8][4]

Aunque el sistema operativo del servidor principal no sea Alpine, conviene revisar los contenedores: si la imagen base es Alpine y dentro corre sshd, ese contenedor sí puede estar expuesto. Si el contenedor no ejecuta sshd, Alpine indica que no está afectado. [3]

El ataque apunta a cuentas cuyo campo de contraseña en /etc/shadow es * (cuentas sin contraseña usable, habituales cuando solo se entra con clave). Las cuentas bloqueadas con ! no entran en ese grupo. [3] Alpine indica contraseñas de 257 a 1024 bytes; NVD describe el intervalo como 256 a 1024 caracteres. [2][3]

CISA incorporó CVE-2026-123158 a su catálogo de vulnerabilidades explotadas (KEV) el 9 de noviembre, con fecha límite el 12 de noviembre. Ese plazo rige para las agencias federales civiles de Estados Unidos, no es un vencimiento general. [4][5]

GreyNoise registró la primera explotación exitosa el 7 de noviembre de 2026 a las 00:46 UTC, contra uno de sus sensores. En las sesiones que siguió observó reconocimiento del sistema, intentos de leer hashes de contraseñas y claves SSH, y cambios en archivos authorized_keys. [9]

Cómo comprobar si está expuesto

Ejecute estos comandos en cada servidor o contenedor que ofrezca SSH, con una cuenta de administrador. Sirven para ver la versión, si el sistema usa musl, si sshd usa PAM, si admite contraseñas, y si hay cuentas con hash *.

ssh -V
sshd -V

Ambos muestran la versión e interrumpen. [10] En Alpine, una versión anterior a 10.6p2 no basta por sí sola para declarar el sistema vulnerable o seguro: la distribución publicó paquetes corregidos que conservan un número de versión anterior. Conviene contrastar con la tabla del aviso de Alpine. [3]

cat /etc/os-release
ldd --version
ldd /usr/sbin/sshd

/etc/os-release identifica la distribución (en Alpine, ID=alpine). En sistemas con glibc, ldd --version indica GLIBC. ldd /usr/sbin/sshd muestra las bibliotecas con las que está enlazado el servidor SSH; si aparece musl, el sistema entra en el grupo de riesgo descrito por OpenSSH. [1]

sshd -T | grep -E 'usepam|passwordauthentication'

sshd -T imprime la configuración efectiva y termina. [10] Si passwordauthentication es yes, el servidor admite contraseñas. Si usepam no aparece en la salida, sshd se compiló sin PAM (es el caso del paquete predeterminado de Alpine); si aparece usepam no, PAM está desactivado. En ambos casos, junto con passwordauthentication yes, se cumplen dos de las condiciones del aviso de Alpine. [3] Suele requerir privilegios de administrador.

awk -F: '$2 == "*" {print $1}' /etc/shadow

Lista las cuentas con hash *. Revisar este archivo exige privilegios de administrador. Si además hay al menos otra cuenta local con un hash que empieza por $5$ o $6$, Alpine considera que se da la condición de las cuentas objetivo. [3]

En contenedores, identifique las imágenes basadas en Alpine y compruebe si dentro se ejecuta sshd; en ese caso, repita las mismas comprobaciones en el contenedor.

Qué hacer

  1. Actualice OpenSSH a 10.6p2 o al paquete corregido de su distribución, y reinicie sshd. En Alpine, actualizar el paquete no sustituye al proceso en ejecución: hay que reiniciar el servicio. [1][3]
  2. Si no puede actualizar de inmediato, desactive el ingreso con contraseña y use claves. En la configuración de sshd, deje PasswordAuthentication no y reinicie el servicio, después de comprobar que puede entrar con su clave y sin cerrar la sesión actual. [3]
  3. Si el sistema estuvo expuesto —musl, sin PAM, con contraseñas habilitadas y cuentas con hash *—, revise los archivos authorized_keys (por convención, ~/.ssh/authorized_keys de cada usuario y /root/.ssh/authorized_keys) y busque claves que no reconozca. Alpine también recomienda mirar en los registros líneas de sshd del tipo Accepted password for en cuentas que no tienen contraseña, y revisar el uso de doas y las cuentas creadas hace poco. Si no puede descartar un ingreso, trate el equipo como comprometido. [3][9][10]

Ninguna de estas medidas garantiza protección total, pero actualizan el servicio vulnerable y cierran el camino que SSHole usa para entrar.

En AXR Global instalamos, configuramos y mantenemos servidores Linux, con soporte para Apache, PHP, MySQL y PostgreSQL. Si necesita revisar sus servidores, puede consultarnos.


Fuentes

  1. OpenSSH, notas de la versión 10.6p2 (5/11/2026): https://www.openssh.org/txt/release-10.6p2
  2. NVD, CVE-2026-123158 (consultada por la API oficial de NVD): https://nvd.nist.gov/vuln/detail/CVE-2026-123158 (API: https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-123158)
  3. Alpine Linux, «Security advisory: openssh-server password authentication bypass» (5/11/2026): https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/
  4. CISA, catálogo KEV (versión 2026.11.10; CVE-2026-123158 agregada el 9/11, plazo 12/11): https://www.cisa.gov/known-exploited-vulnerabilities-catalog (JSON: https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json)
  5. CISA, «CISA Adds Four Known Exploited Vulnerabilities to Catalog» (9/11/2026): https://www.cisa.gov/news-events/alerts/2026/11/09/cisa-adds-four-known-exploited-vulnerabilities-catalog
  6. Red Hat, CVE-2026-123158: https://access.redhat.com/security/cve/CVE-2026-123158
  7. Debian Security Tracker, CVE-2026-123158: https://security-tracker.debian.org/tracker/CVE-2026-123158
  8. Ubuntu, CVE-2026-123158 (actualizado el 11/11/2026): https://ubuntu.com/security/CVE-2026-123158
  9. GreyNoise, informe de actividad de SSHole (CVE-2026-123158), actualizado el 11/11/2026 a las 13:10 UTC: https://sshole.events.greynoise.io/ (resumen: https://www.greynoise.io/blog/global-event-sshole-cve-2026-123158-live-activity-report)
  10. Manual de OpenSSH, sshd(8) y ssh(1) (opciones -V y -T; archivo autorizado ~/.ssh/authorized_keys): https://man.openbsd.org/sshd.8 y https://man.openbsd.org/ssh.1