Alerta de seguridad · Crítica
Alpine OpenSSH: omisión de inicio de sesión con contraseña en sshd sin PAM (CVE-2026-123158)
· 5 minutos de lectura · Centoculus Security Team
Conocida desde el · ataques confirmados desde el
Afectados: OpenSSH sshd en Alpine Linux 3.16 a 3.24 y edge, compilado sin PAM o con UsePAM no, antes de los paquetes openssh corregidos (corrección upstream: OpenSSH 10.6p2)
Qué ocurrió
Alpine Linux publicó un aviso de seguridad para su servidor OpenSSH el 2026-11-05. Describe una omisión de la autenticación por contraseña. Quien pueda llegar al puerto SSH puede iniciar sesión en cuentas que no tienen contraseña definida. No necesita conocer ninguna contraseña y basta con una sola conexión. Cuando Alpine publicó el aviso no se había asignado ningún ID CVE. El problema se conoce ahora como CVE-2026-123158.
El 2026-11-09, CISA añadió CVE-2026-123158 a su catálogo de vulnerabilidades explotadas conocidas. CISA no ofrece detalles sobre los ataques.
Según Alpine, la causa está en la forma en que sshd comprueba las contraseñas cuando se compila sin PAM. Calcula el hash del intento de contraseña con la función de la biblioteca C crypt() y compara el resultado con el campo de contraseña almacenado. En las cuentas sin contraseña, sshd toma prestada la sal de otra cuenta. musl, la biblioteca C que usa Alpine, devuelve cadena * desde crypt() como error cuando la contraseña tiene más de 256 bytes. * es también lo que contiene el campo almacenado de toda cuenta sin contraseña, de modo que la comparación coincide y el inicio de sesión se realiza. Los desarrolladores de OpenSSH modificaron sshd para evitar este caso (commit 4353fdc, en OpenSSH 10.6p2). Describen la omisión como un problema que afecta a "algunas configuraciones y configuraciones de tiempo de ejecución".
Quién está afectado
No se trata de un problema general de OpenSSH en Linux. El aviso de Alpine indica que solo está afectado si se cumplen todas estas condiciones:
- Ejecuta sshd en Alpine Linux con el paquete
openssh-server, compilado sin PAM. O ejecutaopenssh-server-pamconUsePAM no. PasswordAuthenticationestá enyes. Es el valor predeterminado de OpenSSH.- El sistema tiene una cuenta cuyo campo de contraseña en
/etc/shadowes*. Esto incluye:root, que viene comoroot:*desde aproximadamente Alpine 3.16.rootsolo es accesible directamente si está definidoPermitRootLogin yes. Sin embargo, basta con cualquier otra cuenta accesible que pueda convertirse en root, por ejemplo mediantedoas.- Usuarios que solo usan claves, creados con
addusersin contraseña, o conusermod -p '*'. - Usuarios de directorio mediante musl-nscd (nslcd, winbind, sssd).
- El usuario
alpineen las imágenes oficiales tiny-cloud.
- Al menos una cuenta local tiene un hash de contraseña
$5$o$6$.
Alpine indica que estas versiones están afectadas: 3.21 a 3.24, edge, y las versiones anteriores 3.16 a 3.20.
Imágenes tiny-cloud: las imágenes oficiales tiny-cloud desde 3.18.11 hasta 3.24.3 incluyen un usuario alpine con campo de contraseña * y doas sin contraseña. Se vuelven explotables en cuanto existe en la máquina cualquier hash $6$. Esto ocurre, por ejemplo, cuando un administrador define una contraseña de consola o cuando user-data añade un usuario con hashed_passwd. Un atacante puede entonces iniciar sesión como alpine y obtener root.
No afectados:
- Debian, Ubuntu, RHEL y otras distribuciones basadas en glibc donde sshd usa PAM. El comportamiento defectuoso de
crypt()procede de musl. - Docker y otros contenedores que no ejecutan sshd.
- Sistemas con
PasswordAuthentication no. - Sistemas que usan
openssh-server-pamconUsePAM yes. - Cuentas bloqueadas cuyo campo de contraseña empieza por
!. - Sistemas donde ninguna cuenta tiene un hash de contraseña con formato
$. - Imágenes de nube configuradas mediante cloud-init, que establece
PasswordAuthentication no.
Qué hacer ahora
-
Actualice openssh en todos los sistemas Alpine que ejecuten sshd:
apk upgrade -U -a. El paquete corregido está incluido en Alpine 3.21.10, 3.22.8, 3.23.8 y 3.24.4. Las versiones corregidas del paqueteopensshson:- edge: 10.6_p2-r0
- 3.24: 10.3_p1-r2
- 3.23: 10.2_p1-r1
- 3.22: 10.0_p1-r11
- 3.21: 9.9_p2-r1
- 3.20: 9.7_p1-r6
- 3.19: 9.6_p1-r3
- 3.18: 9.3_p2-r4
- 3.17: 9.1_p1-r7
- 3.16: 9.0_p1-r6
El soporte de 3.21 finalizó el 2026-11-01. Alpine siguió publicando paquetes corregidos para todas las versiones desde 3.16.
-
Reinicie sshd:
rc-service sshd restart. Actualizar el paquete no reinicia el demonio en ejecución. Sin reinicio, el sistema sigue siendo vulnerable. -
Si no puede actualizar de inmediato, desactive los inicios de sesión con contraseña. Antes, asegúrese de que el inicio de sesión con clave SSH funciona y mantenga abierta su sesión actual hasta que un nuevo inicio de sesión se haya completado con éxito. Después, establezca
PasswordAuthentication no, incluido dentro de cualquier bloqueMatch. Compruebe la configuración consshd -t, reinicie conrc-service sshd restarty confirme el valor consshd -T | grep -i passwordauthentication. El aviso de Alpine enlazado abajo incluye comandos listos para usar. Actualizar o desactivar los inicios de sesión con contraseña basta para cerrar el fallo. -
Actualice todas las instancias en ejecución creadas a partir de imágenes tiny-cloud anteriores a 3.21.10, 3.22.8, 3.23.8 y 3.24.4, o desactive la autenticación por contraseña en ellas. Estas imágenes no contienen el paquete corregido.
-
Si compila OpenSSH por su cuenta en un sistema basado en musl sin PAM, actualice a OpenSSH 10.6p2.
-
Revise los sistemas expuestos en busca de indicios de intrusión, como se describe más abajo.
Cómo comprobar si está afectado
- Compruebe la distribución:
cat /etc/alpine-release. Si el archivo no existe, el sistema no es Alpine y este aviso no le aplica. - Compruebe el paquete instalado:
apk info -v | grep openssh. Compare la versión con la lista anterior. - Compruebe la configuración activa de sshd:
sshd -T | grep -i -E 'usepam|passwordauthentication'. No está afectado por este problema si aparecepasswordauthentication no, o si usaopenssh-server-pamy apareceusepam yes. - Busque cuentas sin contraseña:
grep -E '^[^:]+:\*:' /etc/shadow. - Busque cuentas con hash
$5$o$6$:grep -E '^[^:]+:\$[56]\$' /etc/shadow.
Si ambas búsquedas devuelven resultados, la autenticación por contraseña está habilitada y el paquete aún no está corregido, el sistema es vulnerable.
Indicios de intrusión: busque en /var/log/messages líneas de sshd con Accepted password for referidas a una cuenta sin contraseña, como alpine, root o cualquier usuario que solo use claves. Revise también el uso de doas, los usuarios creados recientemente, los archivos modificados recientemente y los archivos authorized_keys en las máquinas expuestas. El consejo de Alpine: si no puede descartar un inicio de sesión de este tipo, trate la máquina como comprometida.
Fuentes
Si administras servidores Linux, comprueba también
Otros artículos
Alertas de seguridad ·
Citrix NetScaler ADC y Gateway: fallos críticos de memoria permiten denegación de servicio (CVE-2026-120868)
Citrix ha corregido nueve fallos críticos de memoria en NetScaler ADC y NetScaler Gateway que pueden provocar una denegación de servicio. CVE-2026-120868 afecta a todas las implementaciones. Actualice a 14.1-73.57, 13.1-64.39 o las versiones FIPS correspondientes.
Alertas de seguridad ·
PostgreSQL CVE-2026-6460: los usuarios de la base de datos que pueden crear objetos pueden ejecutar código en el servidor
PostgreSQL 18.7, 17.12, 16.16, 15.20 y 14.25 corrigen CVE-2026-6460 y otras 51 vulnerabilidades. Un usuario de la base de datos que puede crear objetos puede ejecutar código con el usuario del sistema operativo que ejecuta PostgreSQL. Actualice el servidor y las extensiones en C al mismo tiempo...
Alertas de seguridad ·
Node.js: fallos en HTTP/2 y HTTPS permiten a clientes tumbar servidores y leer datos de otros usuarios
Node.js corrigió 16 vulnerabilidades, siete de ellas con gravedad alta. Clientes no autenticados pueden tumbar servidores HTTP/2 o leer memoria de otras conexiones, incluidas las claves TLS. Las versiones corregidas son 22.23.5, 24.22.3 y 26.13.1.