OpenSSH corrige un fallo que permite entrar sin clave en servidores Alpine Linux
- OpenSSH ha publicado la versión 10.6p2 para corregir un fallo que, en ciertos servidores Alpine Linux, deja entrar en una cuenta sin contraseña usando una contraseña muy larga (de 257 a 1.024 bytes).
- Hace falta una combinación concreta de ajustes: no afecta a Debian, Ubuntu ni a sistemas con PAM, ni a servidores con el acceso por contraseña desactivado. No se han comunicado ataques.
- Qué hacer: actualizar con
apk upgrade -U -ay reiniciar sshd (actualizar no basta), o desactivar el acceso por contraseña si no se puede parchear ya.
El equipo de OpenSSH ha lanzado de urgencia la versión 10.6p2 para cerrar un fallo que afecta a servidores Alpine Linux con una configuración concreta. Según la información publicada, un atacante que pueda llegar al puerto SSH y conozca el nombre de una cuenta sin contraseña podría iniciar sesión enviando una contraseña de entre 257 y 1.024 bytes. OpenSSH lo califica como crítico y, de momento, no tiene un identificador CVE asignado.
Por qué ocurre
Alpine usa la biblioteca musl. Cuando recibe una contraseña de más de 256 bytes, su función de cifrado devuelve un
asterisco (*), que es justo el valor que el sistema guarda en las cuentas que no tienen contraseña. El
servidor SSH compara ambos valores, los ve iguales y da por buena la contraseña.
¿Estoy afectado?
Solo si se cumplen todas estas condiciones a la vez:
- Alpine con
openssh-servercompilado sin PAM, o conopenssh-server-pamyUsePAM no. PasswordAuthentication yes(es el valor por defecto).- Al menos una cuenta sin contraseña (con
*en el campo de contraseña). - Al menos otra cuenta con una contraseña cifrada de tipo
$5$o$6$.
No les afecta a los Linux basados en glibc (Debian, Ubuntu, Red Hat y similares), a los sistemas que validan
contraseñas mediante PAM, ni a los servidores con PasswordAuthentication no, como las imágenes de nube
que usan cloud-init. Quien use otros sistemas basados en musl (por ejemplo OpenWrt con OpenSSH, Buildroot o Yocto)
debería comprobarlo.
Qué hacer
- Actualizar:
apk upgrade -U -ay despuésrc-service sshd restart. La actualización por sí sola no reinicia el servicio. - Si no puedes actualizar hoy: desactiva el acceso por contraseña (
PasswordAuthentication no), tras comprobar que entras con clave y sin cerrar tu sesión actual. - Revisar: busca en los registros accesos con contraseña a cuentas que no deberían tenerla. Si no puedes descartar una entrada, trata el equipo como comprometido.
Alpine ha publicado paquetes corregidos para todas sus versiones desde la 3.16. Como lección general, tener SSH accesible desde internet solo con clave, y no con contraseña, elimina de raíz toda una familia de fallos como este.
¿Tienes servidores Linux accesibles desde internet?
Revisamos su configuración de SSH, las actualizaciones pendientes y qué está realmente expuesto.
Infórmate